2012-07-02 50 views
1

我知道它通常建議儘可能避免使用正則表達式,但如果有20個左右字符的列表需要去掉一個字符串?php字符串替換性能

難道是比較划算做這樣的事情

$string = "..."; 

$a = array('a', '1', '!' ...); 

foreach($a as $char){ 
    $string = str_replace($char, '', $string); 

} 

或者倒不如去正則表達式

$string = preg_replace('#[a1!...]#', '', $string); 

謝謝!

+2

您不必遍歷數組。只需使用:$ string = str_replace($ a,'',$ string) – redshark1802

+0

@ redshark1802有正確的答案。 – Narf

+2

答案是這樣的,幾乎所有的性能問題都是:測試它! – Corbin

回答

0

首先,str_replace()支持針和乾草堆陣列,所以通過一個循環運行它只是額外的過程。我也會回覆正則表達式vs字符串vs字符串。幾乎所有情況下,我都會將字符串轉換爲字符串。正則表達式可以給出誤報和積極的消極影響。如果配製不當,並且可能會很快變得令人沮喪。使用它,也正則表達式增加了更多的過程,因爲它必須匹配或不匹配給定的規則。字符串到字符串的位置是否與它匹配。

但這只是我對此事的看法。