0

在阅读 rss 提要时,我尝试将图像和视频的链接与文本分开。这是一个RSS提要http://stopgame.ru/rss/rss_news.xml

有一些带有 youtube 链接描述的文本,例如它以
<br><br>http://www.youtube.com/...

或一些以图像结尾

<br><a href="link"></a><br>
<br><a href="link"></a><br>

有些有视频和图片

<br><br>http://www.youtube.com/...<br>
<br><a href="link"></a><br>
<br><a href="link"></a><br>

我需要将所有指向数组的图像链接和指向数组$images的视频链接分开$video。现在 PHP 是这样的代码:

    if (preg_match_all("/\<br\>\<a href=\"http:\/\/images.stopgame.ru\/(.*)\"\>\<\/a\>\<br\>/", $item->description, $images)) {
        $item->description = preg_replace("/\<br\>\<a href=\"http:\/\/images.stopgame.ru\/(.*)\"\>\<\/a\>\<br\>/", "", $item->description);
    } else {
        $images = null;
    }

    if (preg_match_all("/http:\/\/www.youtube.com\/(.*)\<\/p\>/", $item->description, $video)) {
        $item->description = preg_replace("/\<br\>\<br\>http:\/\/www.youtube.com\/(.*)\<\/p\>/", "", $item->description);
    } else {
        $video = null;
    }


但它显示的结果不是很好:
var_dump($video) 返回如下内容:

array(2) { [0]=> array(1) { [0]=> string(46) "http://www.youtube.com/watch?v=ZJc2W8SBE5U

" } [1]=> array(1) { [0]=> string(19) "watch?v=ZJc2W8SBE5U" } } 

var_dump($images) 返回如下内容:

array(2) { [0]=> array(1) { [0]=> string(237) "





" } [1]=> array(1) { [0]=> string(188) "news/2013/03/15/1363362690.jpg">
4

1 回答 1

1

使用 simplexml:
不幸的是,您没有以让我理解其结构的方式发布 xml 文件,所以我不知道如何判断链接是指图像还是视频。
除非您发布一些启发性的 XML 片段,否则我将提供一个通用解决方案来从 -nodes 中提取所有 href-Attributes:

$xml = simplexml_load_file('yourfile.xml');

$urls = $xml->xpath("//a/@href");

foreach ($urls as $url) {

    echo $url;
}
于 2013-03-17T19:24:26.543 回答