#php #html #if-statement #tags
Вопрос:
Мне нужно удалить все <br />
и все «кавычки» ( "
) и все » и » ( amp;
) и заменить их только пробелом …
Как я могу это сделать? (на PHP)
Я пробовал это для <br />
:
$description = preg_replace('<br />', '', $description);
Но оно вернулось <>
на место каждого <br />
…
Спасибо
Ответ №1:
<?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>');
?>
Ответ №2:
Вы можете использовать str_replace следующим образом:
str_replace("<br/>", " ", $orig );
preg_replace и т.д. Использует регулярные выражения, и это может быть не то, что вам нужно.
Комментарии:
1. Покажите нам пример. Это довольно простая функция, и она отлично работает для меня. Может быть, что-то еще не так.
Ответ №3:
Если str_replace()
это не работает для вас, значит, что-то еще должно быть не так, потому что
$string = 'A string with <br/> amp; "double quotes".';
$string = str_replace(array('<br/>', 'amp;', '"'), ' ', $string);
echo $string;
выходы
A string with double quotes .
Пожалуйста, приведите пример вашей входной строки и укажите, как она будет выглядеть после фильтрации.
Комментарии:
1. Хех, возможно, он дважды процитировал исходную строку.
Ответ №4:
Для манипулирования HTML , как правило, рекомендуется использовать инструмент с поддержкой DOM вместо инструментов для обработки обычного текста (подумайте , например, что произойдет, если вы укажете варианты, например <br/>
, <br />
с более чем одним пробелом или даже <br>
или <BR/>
, которые иногда используются как незаконные). Смотрите, например, здесь: http://sourceforge.net/projects/simplehtmldom/
Комментарии:
1. Хммм, мне кажется, что раздевание может, по крайней мере, отличаться от других манипуляций. для этого у нас есть strip_tags ().
Ответ №5:
Чтобы удалить все перестановки br:
<br> <br /> <br/> <br >
проверьте strip_only()
функцию, предоставленную пользователем в
Предостережение «Используйте DOM вместо замены» всегда правильно, но если задача действительно ограничена этими тремя символами, это должно быть o.k.
Ответ №6:
Попробуйте это:
$description = preg_replace('/<br />/iU', '', $description);
Ответ №7:
Это сработало для меня, чтобы удалить <br/>
:
( amp;>
распознается, тогда как > нет)
$temp2 = str_replace('amp;<','', $temp);
// echo ($temp2);
$temp2 = str_replace('/amp;>','', $temp2);
// echo ($temp2);
$temp2 = str_replace('br','', $temp2);
echo ($temp2);
Комментарии:
1. > вместо