Как удалить теги и многое другое из строки?

#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>');

?>
 

http://php.net/manual/en/function.strip-tags.php

Ответ №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() функцию, предоставленную пользователем в

http://www.php.net/strip_tags

Предостережение «Используйте 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. > вместо