Убрать HTML-теги из строки - PullRequest
       32

Убрать HTML-теги из строки

1 голос
/ 19 декабря 2010

У меня есть веб-сайт, который анализирует 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 Ответ

3 голосов
/ 19 декабря 2010

Перед удалением тегов обработайте замену строки, чтобы преобразовать специальные символы, которые вы хотите сохранить.

$source = str_replace('<p>', '&lt;p&gt;', $source);
$source = strip_tags($source);

Затем используйте htmlspecialchars_decode(trim($source)) для вывода в html.

IГотов поспорить, что причина неправильной верстки страницы связана с CSS.Внимательно изучите ваш сгенерированный источник (если возможно, с помощью firebug) и убедитесь, что каждый html-элемент также имеет соответствующий закрывающий тег и что ни один из ваших html-элементов не был изменен вашим скриптом, хотя я не знаю, почему онибыть.

Попробуйте изолировать вывод вашего скрипта на пустую страницу, чтобы вы могли ближе познакомиться с тем, что происходит.Затем, если вы уверены, что все должно быть, если проблемы не устранены, попробуйте разместить выходные данные в разных частях вашей страницы.Кроме того, убедитесь, что вы обрезали свой пробел.

Дайте нам знать, что вы найдете.

...