2015-02-22 3 views
3

Мне нужно заменить только определенные специальные символы, а все остальное ДОЛЖНО быть сохранено, поэтому я не могу использовать [a-zA-Z0-9] и подобные коды, чтобы сохранить все, и все остальное должно быть заменено.Как заменить только определенные специальные символы в PHP?

Я пытался что-то вроде этого:

$textrim = preg_replace("/(_%:\"`´\[\]\.\(\)\'!\?\.,#‘\<\>-—~\*)/", "", $title); 

Но это не работает, и я не найти ничего в сети, что я мог бы изменить для моих потребностей.

ответ

5

Для этого не требуется регулярное выражение.

http://php.net/str_replace

Смотрите второй пример

// Provides: Hll Wrld f PHP 
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); 
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); 
+0

Спасибо! Я воспринял это как супруг, потому что он кажется наиболее эффективным. – Hunnenkoenig

+1

@Hunnenkoenig На английском языке мы говорим «ответ» для «Antwort»;) – Christian

+0

Упс ... это происходит, когда вы говорите на 3-х языках активно каждый день :-) – Hunnenkoenig

0

Хорошо, я только что понял, после того, как спросил.

$textrim = preg_replace('/(_|%|:|"|`|´|\[|\]|\.|\(|\)|\'|!|\?|\.|,|#|‘|\<|\>|-|—|~|\*|\$)/', '', $title); 
1

Вы также можете создать класс символов, содержащий символы, которые вы хотите заменить:

Что-то вроде этого

$out = preg_replace("/[_%:\"`´\[\]()'!?.,#‘<>—~*$-]/", "", $title); 

также должны работать.

+0

На самом деле у меня было что-то вроде этого первого, и я думал, что это работает, но потом я понял, что все мои письма пропали и только цифры остаться. Я не знаю, почему это произошло, но я предположил, что «[]» предназначены для сохранения этих персонажей. – Hunnenkoenig

Смежные вопросы