web-dev-qa-db-fra.com

php Remplacement de plusieurs espaces par un seul espace

J'essaie de remplacer plusieurs espaces par un seul. Lorsque j'utilise ereg_replace, j'obtiens une erreur indiquant qu'il est obsolète.

ereg_replace("[ \t\n\r]+", " ", $string);

Y at-il un remplacement identique pour cela. Je dois remplacer plusieurs " " espaces blancs et plusieurs nbsp espaces blancs par un seul espace blanc.

178
Dani

Utilisez preg_replace() et au lieu de [ \t\n\r], utilisez \s:

$output = preg_replace('!\s+!', ' ', $input);

De référence de syntaxe de base des expressions régulières :

\ d,\w et\s

Des classes de caractères abrégées correspondant à des chiffres, des caractères Word (lettres, chiffres et traits de soulignement) et des espaces (espaces, tabulations et sauts de ligne). Peut être utilisé à l'intérieur et à l'extérieur des classes de caractères.

376
cletus
$output = preg_replace('/\s+/', ' ',$input);

\ s est un raccourci pour [ \t\n\r]. Plusieurs espaces seront remplacés par un seul espace.

44
Somnath Muluk
preg_replace("/[[:blank:]]+/"," ",$input)
38
ghostdog74