使用preg_replace删除字符串末尾的额外空格

时间:2011-01-24 21:12:00

标签: php preg-replace

我希望在PHP中使用preg_replace替换字符串末尾的额外空格。我正在创建一个大型的单词数据库,不知何故,几个单词最后会有额外的空格。

3 个答案:

答案 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.'-');