62 votes

remplacer les caractères masqués dans le texte

Comment supprimer   (qui sont cachés) et les ESPACES dans le texte ci-dessous mais

  • contenir des caractères UNICODE
  • conserver la balise <br>

j'ai testé:

  • j'ai utilisé trim($string) => PAS FONCTIONNÉ
  • j'ai utilisé str_replace('&nbsp;', '', $string) => PAS FONCTIONNÉ
  • j'ai utilisé des regex => PAS FONCTIONNÉ

                 <br> :     
    

METTRE À JOUR:Image de caché Merci

86voto

Mostafa M Points 800

Cette solution fonctionnera, je l'ai testé:

 $string = htmlentities($content, null, 'utf-8');
$content = str_replace("&nbsp;", "", $string);
$content = html_entity_decode($content);

38voto

Ben Carey Points 4663

Pas testé, mais si vous utilisez quelque chose comme :

 $string = preg_replace("/\s/",'',$string);

Cela devrait supprimer tous les espaces.

METTRE À JOUR

Pour supprimer tous les espaces et les &nbsp; , utilisez quelque chose comme :

 $string = preg_replace("/\s|&nbsp;/",'',$string);

MISE À JOUR 2

Essaye ça:

 $string = html_entity_decode($string);

$string = preg_replace("/\s/",'',$string);

echo $string;

J'ai oublié de dire, reconvertissez les entités html alors ajoutez ceci après le remplacement :

 htmlentities($string);

4voto

Max-IX Points 11

Toutes les solutions ci-dessus fonctionnent, jusqu'à ce que l'on commence à travailler avec la langue allemande où il y a de telles lettres :

 ä &auml;

et d'autres simiaux. J'utilise le code suivant :

 $string = preg_replace ( "!\s++!u", ' ', $string );

Plus de détails ici : Manuel des fonctions de la bibliothèque PCRE(3)

2voto

FullStackEngineer Points 121

Cela a fonctionné pour moi.

 preg_replace("/&nbsp;/",'',$string)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X