скрипт preg_replace, тег ссылки не работает - PullRequest
2 голосов
/ 31 марта 2012

Я использовал следующий код для удаления скрипта, ссылки на теги из моей строки,

$contents='<script>inside tag</script>hfgkdhgjh<script>inside 2</script>';
$ss=preg_replace('#<script(.*?)>(.*?)</script>#is', '', $contents);
echo htmlspecialchars($ss);

все работает нормально.Но могу ли я использовать для этого что-то похожее на html-разбор, а не preg_match?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

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

  1. htmlspecialchars() может доказать, что эти теги бесполезны
  2. striptags() удаляет все теги HTML

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

echo preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $contents);
0 голосов
/ 31 марта 2012

Очиститель HTML - это всегда хороший выбор. phpQuery также пригодился несколько раз.

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

...