2011-11-17 50 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秒

相關問題