在阅读RSS Feed时,我尝试将图片和视频的链接与文本分开。
这是一个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">
答案 0 :(得分:1)
使用simplexml:
不幸的是,你没有以一种让我理解其结构的方式发布xml文件,因此我不知道如何判断链接是否引用图像或视频。
除非您发布XML的一些启发性片段,否则我将提供一般解决方案从-nodes中提取所有href-Attributes:
$xml = simplexml_load_file('yourfile.xml');
$urls = $xml->xpath("//a/@href");
foreach ($urls as $url) {
echo $url;
}