This question already has answers here: How can I convert ereg expressions to preg in PHP? (4 answers) Closed 3 years ago.
I'm trying to replace multiple spaces with a single space. When I use ereg_replace
, I get an error about it being deprecated.
ereg_replace("[ \t\n\r]+", " ", $string);
Is there an identical replacement for it. I need to replace multiple " "
white spaces and multiple nbsp
white spaces with a single white space.
Use preg_replace()
and instead of [ \t\n\r]
use \s
:
$output = preg_replace('!\s+!', ' ', $input);
From Regular Expression Basic Syntax Reference:
\d, \w and \s Shorthand character classes matching digits, word characters (letters, digits, and underscores), and whitespace (spaces, tabs, and line breaks). Can be used inside and outside character classes.
$output = preg_replace('/\s+/', ' ',$input);
\s
is shorthand for [ \t\n\r]
. Multiple spaces will be replaced with single space.
preg_replace("/[[:blank:]]+/"," ",$input)
Success story sharing
/(?:\s\s+|\n|\t)/
=> 1410 (slowest),/\s+/
=> 611 (ok'ish),/\s\s+/
=> 496 (fastest). The last one does not replace single\n
or\t
, but thats ok for my case.mb_ereg_replace
doc