1

Web サイトからの RSS フィードを解析してページに投稿する Web サイトがあります。
RSS フィードを読み取って再フォーマットする、私の Web サイトの背後で実行されるスクリプトは、現在、すべての 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');
4

1 に答える 1

3

タグを削除する前に、文字列置換を処理して、保持したい特殊文字を変換します。

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

次にhtmlspecialchars_decode(trim($source))、htmlに出力するために使用します。

あなたのページ レイアウトがうまくいかない原因は css にあると断言できます。生成されたソースをよく調べて (可能であれば、firebug を使用して)、すべての html 要素にも対応する終了タグがあり、スクリプトによって意図的な html 要素が変更されていないことを確認してください。なれ。

スクリプトの出力を空白のページに分離して、何が起こっているかを詳しく確認できるようにしてください。問題が解決しない場合は、ページの別の場所に出力を配置してみてください。さらに、空白を必ずトリムしてください。

あなたが見つけたことを私たちに知らせてください。

于 2010-12-19T18:08:36.713 に答える