2011-11-17 127 views
1

我想知道什么是最快的方式来替换字符串中的某些字符什么都不是。我现在有以下几点:最快的方法来替换字符串中的一系列字符

$omschrijving = str_replace(")", "", str_replace("(", "", $line))); 

有没有更好的方式来做到这一点?这只是取代"("")",但是如果我想对更多字符做同样的操作。仍然在学习preg_方法,但目前仍然有点令人兴奋。

回答

3

在这里你去:

str_replace(array('a', 'b', 'c', 'd'), '', $sString); 

the manual

替换值替换找到的搜索值。一个 阵列可能被用来指定多个替换。

2

str_replace也可以将数组作为参数。

$omschrijving = str_replace(array('(', ')'), '', $line); 
1

没有问题

$omschrijving = str_replace(array('a', 'b', 'c', 'd', 'e', 'f', 'g'), "", $line); 

str_replace accpets数组作为第一和第二参数。

您还可以使用strtr,substr_replacepreg_replace来替换其他字符串部分。

1

这将使用preg_replace来做你想做的事。如果你想添加别的东西只是方括号中添加它

$string = preg_replace('/[()]/i', '', $string); 

这将替换字符串“(”和“)”的所有实例。

例如,要添加替换所有破折号以及将其添加到替换字符串。

$string = preg_replace('/[()-]/i', '', $string); 

还可以替换所有的下划线。

$string = preg_replace('/[()_-]/i', '', $string); 

希望这会有所帮助。

0

根据我的基准测试,在同时替换1或2个字符时,您必须使用str_replace。无论何时您需要替换3个或更多字符,preg_replace会更有效率。

我用这个benchmark protocole,修改它,使它接受各种字符,而不是一个。

为3个字符,这里的结果:

时间为str_replace函数:1.919958114624秒时间为preg_replace函数: 1.4596478939056秒

相关问题