2015-02-16 4 views
2

Я пытаюсь удалить символ нежелательной почты из потока html-строк с помощью PHP, но пока не увенчался успехом. Есть ли специальный синтаксис или логики для удаления специального символа из строки?Удалить Специальный символ из строки

Я попытался это до сих пор, но не работает

$new_string = preg_replace("�", "", $HtmlText); 
echo '<pre>'.$new_string.'</pre>'; 
+1

Если вы видите « », это означает, что вы используете неправильную кодировку символов. Он используется PHP для представления всего, что он не может отобразить. Таким образом, это может быть что угодно. –

+5

Когда вы получаете , всегда что-то не так. Либо кодировка символов, кодировка страниц, кодировка базы данных и т. Д. - Удаление является симптомом лечения, но оно не излечивает болезнь. – davidkonrad

+0

Как сказал Дэвид, вы неправильно кодируете базу данных для хранения содержимого. Я предполагаю, что вам нужно некоторое кодирование utf, и, вероятно, он использует обычный набор символов. Как указано, замена/снятие будет «удалять их, но очень плохой ответ :) – Brian

ответ

0

Это происходит из-за несовпадения в Charset между базой данных и передним концом. Исправление этого будет исправлять проблему.

-3

функцию очистки ($ строка) {

 return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. 

}

0
\p{S} 

Вы можете использовать это. \p{S} matches math symbols, currency signs, dingbats, box-drawing characters, etc

Просмотреть демонстрационный файл.

https://www.regex101.com/r/rK5lU1/30

$re = "/\\p{S}/i"; 
$str = "asdas�sadsad"; 
$subst = ""; 

$result = preg_replace($re, $subst, $str); 
Смежные вопросы