Специальные символы функции 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);   
} 

person Bas    schedule 30.03.2014    source источник
comment
str_replace принимает аргументы массива, пожалуйста, проверьте документацию   -  person mesutozer    schedule 30.03.2014


Ответы (3)


Вы можете использовать массив... Передайте эти символы в массиве, как показано.

$product['name'] = str_replace(array(":",",","*"), "", $product['name']);
person Shankar Narayana Damodaran    schedule 30.03.2014
comment
спасибо, но как я могу сделать это с массивом ( ‹i› =› '-', ‹-i› =› '-', =› '', / =› '', =› '', / =› ' ' ) С помощью str_replace_assoc? - person Bas; 30.03.2014
comment
@Bas, извините, меня не было, когда вы отправили мне это сообщение. Вы решили проблему? - person Shankar Narayana Damodaran; 30.03.2014
comment
да, см. пост-решение. Мне нужно было заменить ключ на значение. См. функцию. спасибо - person Bas; 30.03.2014

Попробуйте это

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

person    schedule
comment
Пожалуйста, не предоставляйте ответы только с кодом. Объясните, что делает ваш код. - person Gaurang Tandon; 30.03.2014