div自动添加$ item-> get_description();使用simplepie

时间:2012-06-06 20:07:39

标签: rss feed feedparser simplepie

我在调用RSS提要时出现在输出中的div。它忽略了我尝试将其包装在段落标记中并将数据推送到div。

foreach ($feed->get_items(0 , 3) as $item):
    $feedDescription = $item->get_content();
    $image = returnImage($feedDescription);
    $image = scrapeImage($image);
    $image_url= $item->get_permalink();
    $description = $item->get_description();
?>
        <div class="item">
            <h4><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h4>
            <div class="image-box"><?php echo '<a href="' . $image_url . '"><img src="' . $image . '" /></a>'."\n";?></div>
            <p><?php echo $description ?></p>
            <p><a href="<?php echo $item->get_permalink(); ?>">Continue Reading</a></p>   
        </div>

    <?php endforeach; ?>

这是html输出:

<div class="item">
    <h4><a href="#">Lorem Ipsum</a></h4>
    <div class="image-box"><a href="#"><img src="image.jpg"></a>
</div>
<p></p>

<div>Lorem Ipsum description [...]</div>

<p></p>
<p><a href="#">Continue Reading</a></p>   
</div>

为什么描述调用会添加div标签而不会包含在段落标记中?

1 个答案:

答案 0 :(得分:1)

这不是SimplePie的问题......好吧,不是直接的。 尝试测试这个html块:

    <div class="item">
        <h2><a href="http://#">Title</a></h2>
        <p><div><span>Description</span></div></p>
        <p><small>Posted on TODAY</small></p>
    </div>

你会看到这里的行为是一样的。 问题是,你从simplepie获得的帖子被封装在DIV中。将DIV插入段落会导致两者分离。

因此,您可以尝试使用regexp或jQuery删除PHP中的封闭DIV。