Как удалить отдельные специальные символы из строки в PHP? - PullRequest
3 голосов
/ 23 мая 2011

У меня есть строка, как показано ниже,

Hindustan Times, октябрь 2009 г., обзор известный искусствовед в ее соло выставка в Джайпуре, Джавахар Кала Кендрат, 23-29 сентября 2009 г. ее картины, включая ее самого портрет, стресс в гуманитарных науках исключительное положение и бесцельность "

В приведенной выше строке мне нужно удалить следующие символы

, " ' - .

Есть ли строковые функции, которые я могу использовать для удаления этих символов?

Ответы [ 4 ]

3 голосов
/ 23 мая 2011

Вы можете использовать str_replace для замены массива символов

$str = "Hindustan Times, Oct 2009, Review by a well known Art critic on her solo exhibition at Jaipur, Jawahar Kala Kendra'th, 23-29th Sep 2009. \"Many of her paintings including her self portrait, stress in humanities singular plight and aimlessness";
$search     = array(',', '"', "'", '-', '.');
$clean      = str_replace($search, ' ', $str); 
echo $clean; 
1 голос
/ 23 мая 2011

Кроме того, вы можете выбрать удаление всех символов, которые не являются буквенно-цифровыми или пробелами, вместо перечисления всех символов, которые вам не нужны:

preg_replace("/[^A-Za-z0-9\s]/", "", $str);

Конечно, это исключило бы все знаки препинания и, возможно, больше символов, чем вы хотите.

0 голосов
/ 23 мая 2011

JohnP правильно использует str_replace(). Основное правило заключается в том, чтобы использовать регулярное выражение только в тех случаях, когда другие строковые методы не подходят (или, по крайней мере, не очень).

Однако, если вы хотите использовать регулярные выражения, вы можете сделать это тоже.

Вы должны вводить эти символы в класс символов, принимая во внимание, что экранирующий символ не следует использовать, а также используйте - таким образом, чтобы он воспринимался буквально, а не как диапазон.

preg_replace('/[,"\'.-]+/', '', $str);

Ideone .

0 голосов
/ 23 мая 2011

используйте preg_replace и замените нужный набор пустой строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...