Убрать HTML-теги из строки
У меня есть веб-сайт, который анализирует RSS-канал с веб-сайтов и размещает их на странице.
Скрипт, который работает за моим веб-сайтом, который читает и форматирует RSS-канал, в настоящее время удаляет все теги HTML.
Вот код:$description = strip_tags($description);
Я хочу разрешить теги, такие как <p>
, <a>
или же <br />
но если я сделаю это, по какой-то причине мой сайт станет беспорядком. Как заголовок будет иметь большое пространство над ним.
Каково было бы решение этого?
=== РЕДАКТИРОВАТЬ === (еще немного кода)
// get all of the sources of news from the database
$get_sources = $db->query("SELECT * FROM ".$prefix."sources ORDER BY last_crawled ASC");
while ($source = $db->fetch_array($get_sources)) {
$feed = new SimplePie($source[url]);
$feed->handle_content_type();
foreach ($feed->get_items() as $item)
{
$title = $item->get_title();
$link = $item->get_link();
$description = $item->get_content();
// strip all html
$description = strip_tags($description);
// format the data to make sure it's all fine
$title = html_entity_decode($title, ENT_QUOTES, 'UTF-8');
// create the path, or slug if you will
$path = post_slug($title);
$description = html_entity_decode($description, ENT_QUOTES, 'UTF-8');
1 ответ
Перед удалением тегов обработайте замену строки, чтобы преобразовать специальные символы, которые вы хотите сохранить.
$source = str_replace('<p>', '<p>', $source);
$source = strip_tags($source);
Тогда используйте htmlspecialchars_decode(trim($source))
выводить в html.
Готов поспорить, что причина неправильной верстки вашей страницы связана с CSS. Внимательно просмотрите ваш сгенерированный источник (если возможно, с помощью firebug) и убедитесь, что каждый html-элемент также имеет соответствующий закрывающий тег и что ни один из ваших преднамеренных html-элементов не был изменен вашим скриптом, хотя я не знаю, почему они будут быть.
Попробуйте изолировать вывод вашего скрипта на пустой странице, чтобы вы могли более внимательно посмотреть, что происходит. Затем, если вы уверены, что все должно быть, если проблемы не устранены, попробуйте разместить выходные данные в разных частях вашей страницы. Кроме того, убедитесь, что вы обрезаете свой пробел.
Дайте нам знать, что вы узнаете.