Мне нужно снять все <br />
и все «цитаты» ( "
) и все« и »( &
) и заменить их только пробелом …
Как я могу это сделать? (в PHP)
Я пробовал это для <br />
:
$description = preg_replace('<br />', '', $description);
Но он вернулся <>
вместо всех <br />
…
благодаря
Для управления HTML обычно полезно использовать инструмент DOM, а не инструменты для простого текстового манипулирования (например, подумайте, что произойдет, если вы запустите варианты, такие как <br/>
, <br />
с более чем одним пространством или даже <br>
или <BR/>
, которые иногда используются незаконно). См. Здесь: http://sourceforge.net/projects/simplehtmldom/
<?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); echo "\n"; // Allow <p> and <a> echo strip_tags($text, '<p><a>'); ?>
Чтобы удалить все перестановки br:
<br> <br /> <br/> <br >
проверьте, что пользователь strip_only()
функцию strip_only()
в
«Использовать DOM вместо замены» caveat всегда корректно, но если задача действительно ограничена этими тремя символами, это должно быть нормально
Если str_replace()
не работает для вас, тогда что-то еще должно быть неправильным, потому что
$string = 'A string with <br/> & "double quotes".'; $string = str_replace(array('<br/>', '&', '"'), ' ', $string); echo $string;
выходы
A string with double quotes .
Просьба привести пример строки ввода и то, что вы ожидаете от нее после фильтрации.
Вы можете использовать str_replace следующим образом:
str_replace("<br/>", " ", $orig );
preg_replace и т. д. использует регулярные выражения, и это может быть не то, что вы хотите.
Попробуй это:
$description = preg_replace('/<br \/>/iU', '', $description);