У меня строка:
<p justify;"="">Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ...</p>
и хотите, чтобы удалить тег
<p justify;"=""></p>
мой код:
$content = strip_tags($text, '<p>');
но я получаю пустую строку: string(0) ""
, что я делаю неправильно?
Попробуй так выразиться
$content = strip_tags($text);
Или вы можете сделать это с регулярным выражением:
$content = preg_replace('/<[^>]*>/', '', $text);
Посредством этого $content = strip_tags($text, '<p>');
вы разрешаете <p>
в строке.
Для получения дополнительной информации см. Ссылку http://php.net/manual/en/function.strip-tags.php
Поскольку HTML плохо сформирован, вам, вероятно, нужно либо написать собственное регулярное выражение для удаления тегов, либо очистить HTML, прежде чем пытаться удалить теги.
Вы можете попробовать это, чтобы удалить все, что «выглядит» как тег:
$str = preg_replace("/<.*?>/", " ", $str);
Поскольку ваш HTML некорректно отформатирован, вы можете выбрать preg_replace()
:
$text = '<p justify;"="">Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ... </p>'; $content = preg_replace('/<[^>]*>/', '', $text); var_dump($content); // string(108) "Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ... "
Пример кода
В strip_tags () docs говорится: Поскольку strip_tags () фактически не проверяет HTML, частичные или сломанные теги могут привести к удалению большего количества текста / данных, чем ожидалось.
Второй параметр – для $allowable_tags
.
Это удалит каждую вещь – теги, ascii, разрывы строк, но чистый текст:
strip_tags(preg_replace('/<[^>]*>/','',str_replace(array(" ","\n","\r"),"",html_entity_decode($YOUR_STRING,ENT_QUOTES,'UTF-8'))));
Это заменит все теги html, https://regex101.com/r/jM9oS4/4
preg_replace('/<(|\/)(?!\?).*?(|\/)>/',$replacement,$string);
Это может помочь php-strip-tags
ok, если prep_replace не работает, попробуйте использовать jquery для удаления тегов html.
посмотреть это сообщение javascript-how-to-strip-html-tags