2014-03-30 69 views
0

是否有任何函數或方法可以一次替換所有字符?Str_replace函數特殊字符

$product['name'] = utf8_decode(strtolower(strip_tags($child->name))); 
$product['name'] = str_replace(":", "-", $product['name']); 
$product['name'] = str_replace("*", "", $product['name']); 
$product['name'] = str_replace("#", "--", $product['name']); 
$product['name'] = str_replace("@", "", $product['name']); 
$product['name'] = str_replace("(", "---", $product['name']); 
$product['name'] = str_replace(")", "", $product['name']); 
etc 
etc 

解決方案對我來說: http://www.php.net/manual/en/function.str-replace.php#95198

function strReplaceAssoc(array $replace, $product) { 
    return str_replace(array_keys($replace), array_values($replace), $product); 
} 
+5

str_replace函數接受數組參數,請查看文檔 – mesutozer

回答

2

您可以使用數組...傳遞這些字符數組,如圖..

$product['name'] = str_replace(array(":",",","*"), "", $product['name']); 
+0

thnks,但我怎麼能與陣列做( 「」=> ' - ', 「<-i>」=> ' - ', 「 」 =>'', 「/」=>'', 「&」=>'', 「/」=>'' )with str_replace_assoc? – Bas

+0

@Bas,對不起,當你給我發送這條消息時,我就不在了。你解決了嗎? –

+0

是的,看到後解決方案。我需要爲價值取代鑰匙。見功能。 Thnx – Bas

1
$replace = array(':','*','#','@',......); 
$product['name'] = str_replace($replace , "", $product['name']) 
+1

請不要提供純代碼的答案。解釋你的代碼的作用。 –

0

嘗試這個

$product['name'] = utf8_decode(strtolower(strip_tags($child->name))); 
$blacklist=array(':','*','#','@','(',')');//etc etc 
$product['name'] = str_replace($blacklist , "", $product['name']);