J'ai une phrase comme ça.
1 2 3 4
Comme vous le voyez, entre 1 2 et 3 textes, il y a des espaces supplémentaires. Je veux la sortie avec un seul espace entre eux. donc ma sortie sera 1 2 3 4
.
Si j'utilise le trim, il ne peut supprimer que les espaces blancs, mais pas que
Comment puis-je utiliser PHP trim fonction pour obtenir la sortie comme ça?
$str = "1 $nbsp; 2 3 4";
$new_str = str_replace(" ", '', $str);
Trouvé sur php.net, fonctionne très bien:
$myHTML = " abc";
$converted = strtr($myHTML, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
trim($converted, chr(0xC2).chr(0xA0));
Une réponse plus inclusive pour ceux qui veulent juste faire un trim:
$str = trim($str, " \t\n\r\0\x0B\xC2\xA0");
Même trim gestion des entités html:
$str = trim(html_entity_decode($str), " \t\n\r\0\x0B\xC2\xA0");
Cette interaction html_entity_decode et trim est décrite dans les documents PHP ici: http://php.net/manual/en/function.html-entity-decode.php#refsect1- function.html-entity-decode-notes
$str = " abc ";
echo trim($str, "\xC2\xA0"); //abc
si votre chaîne contient "",
$str="1 2 3 4";
$s = str_replace(" ","",$str);
print $s;
echo str_replace ( " ", "", "1 2 3 4" );
rappelez-vous juste que vous devez faire écho au résultat de str_replace et vous n'avez également pas à vous soucier des espaces blancs et le navigateur n'affichera qu'un seul espace blanc.
Un peu tard pour répondre mais j'espère que cela pourrait aider quelqu'un d'autre. Le plus important lors de l'extraction de contenu html est d'utiliser tf8_decode () en php. Ensuite, toutes les autres opérations de chaîne deviennent un jeu d'enfant. Même les caractères étrangers peuvent être remplacés en copiant directement les caractères collés du navigateur dans le code php. La fonction suivante remplace
Par un espace. Ensuite, tous les espaces blancs supplémentaires sont remplacés par un seul espace blanc à l'aide de preg_replace()
. Les espaces blancs avant et arrière sont supprimés à la fin.
function clean($str)
{
$str = utf8_decode($str);
$str = str_replace(" ", " ", $str);
$str = preg_replace('/\s+/', ' ',$str);
$str = trim($str);
return $str;
}
$html = "1 $nbsp; 2 3 4";
$output = clean($html);
echo $output;
1 2 3 4