Мне нужно снять все <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);