2015-08-02 7 views
-1

Как я могу удалить только (с помощью завиток Для получения данных)Удалить нестандартные символы HTML PHP

$str = "Check this out <a href=�http://www.somewebsite.com�>Somewebsite</a>, this is a great website 
Windows� (XP 32bit/Vista/7/8/8.1)"; 

Я просто хочу быть удалены. Я попытался

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

это удаление HTML также ... но я хочу HTML

+0

Что вы спросите? Чтобы решить вашу проблему с кодировкой или просто удалить символы, которые не принадлежат кодировке строки? – Federkun

+0

@Leggendario Извините ... я не упомянул раньше ... Я использую завиток, чтобы получить эти данные. – Harinder

+1

У вас есть проблема с кодировкой ** **, которую вы должны решить ** корректно обрабатывая кодировки. * * Не путем удаления «неправильных» символов. – deceze

ответ

0

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

  • Сохранить документ в UTF8 (или UTF8 без BOM) (Если вы используете Notepad ++, это формат -> Преобразовать в UFT-8 или UTF-8 без BOM)
  • заголовке как PHP, так и HTML должны быть установлены на UTF-8
    • HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />, внутри <head> -tag в вашем документе.
    • PHP: header('Content-Type: text/html; charset=utf-8'); - заголовки PHP должны быть установлены ДО любой вывод выполнен (без HTML, без пробелов, без эха/печати - ничего).

Есть и другие аспекты, а также, что, возможно, необходимо установить в UTF-8, это зависит от того, какие функции PHP вы используете и так далее. Но выше, как правило, хорошее начало.

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