我希望在PHP中使用preg_replace
替换字符串末尾的额外空格。我正在创建一个大型的单词数据库,不知何故,几个单词最后会有额外的空格。
答案 0 :(得分:8)
您应该使用rtrim
代替。它将删除字符串末尾的额外空格,并且比使用preg_replace
更快。
$str = "This is a string. ";
echo rtrim($str);
速度比较 - preg_replace
v。trim
// Our string
$test = 'TestString ';
// Test preg_replace
$startpreg = microtime(true);
$preg = preg_replace("/^\s+|\s+$/", "", $test);
$endpreg = microtime(true);
// Test trim
$starttrim = microtime(true);
$trim = rtrim($test);
$endtrim = microtime(true);
// Calculate times
$pregtime = $endpreg - $startpreg;
$trimtime = $endtrim - $starttrim;
// Display results
printf("preg_replace: %f<br/>", $pregtime);
printf("rtrim: %f<br/>", $trimtime);
<强>结果
preg_replace:0.000036
rtrim:0.000004
如您所见,rtrim
实际上更快nine times。
答案 1 :(得分:3)
为什么不使用trim()http://php.net/manual/en/function.trim.php
答案 2 :(得分:0)
使用preg_replace,如你所愿:
$s = ' okoki efef ef ef
';
print('-'.$s.'-<br/>');
$s = preg_replace('/\s+$/m', '', $s);
print('-'.$s.'-');