web-dev-qa-db-fra.com

remplacer nbsp; caractères cachés dans le texte

Comment supprimer   (Qui sont cachés) et SPACES dans le texte ci-dessous mais

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

j'ai testé:

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

                <br>تاريخ ورود: یکشنبه ۲۳ بهمن ماه ۱۳۹۰
    

MISE À JOUR: Image of hidden   Merci

SOLUTION FINALE:

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

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

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

Cela devrait supprimer tous les espaces.

MISE À JOUR

Pour supprimer tous les espaces et &nbsp; références, utilisez quelque chose comme:

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

PDATE 2

Essaye ça:

$string = html_entity_decode($string);

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

echo $string;

Oublié de dire, reconvertir les entités html alors ajoutez ceci après le remplacement:

htmlentities($string);
37
Ben Carey

Cette solution fonctionnera, je l'ai testée:

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

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

ä &auml;

et autres simial. 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)

2
Oleksiy Muzalyev

Cela a fonctionné pour moi.

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