从描述中提取src =“xyz”的XML数据

时间:2012-06-22 15:08:35

标签: php xml curl

我正在尝试将我的pin Feed合并到我的网站中。我已经有了它的工作,但我需要修改它显示的内容,因为它没有按预期工作。

我需要的是从日期的描述位中提取某一段数据。

这是我用来抓取XML Feed的代码:

<?php
$ch = curl_init("http://pinterest.com/1234/feed.rss");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
$doc = new SimpleXmlElement($data, LIBXML_NOCDATA);

if(isset($doc->channel))
{
    parseRSS($doc);
}
function parseRSS($xml)
{
    $cnt = 9;
    for($i=0; $i<$cnt; $i++)
    {
    $url    = $xml->channel->item[$i]->link;
    $img    = $xml->channel->item[$i]->description;
    $title  = $xml->channel->item[$i]->title;
    echo '<p><a href="'.$url.'" title="'.$title.'">'.$img.'</a></p>';
    }
}
?>

问题是描述如下所示,我想要的只是src的值:

<description>&lt;p&gt;&lt;a href="/pin/1785432765530/"&gt;&lt;img src="http://media-cache-ec1.pinterest.com/upload/27099622222548513383_qJV62266Pf_b.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;What it takes to Google’s.&lt;/p&gt;</description>

有没有办法从说明中获取src="http://media-cache-ec1.pinterest.com/upload/270996666522513383_qJV6666Pf_b.jpg"并将其存储在$img或其他变量中?

3 个答案:

答案 0 :(得分:2)

html_entity_decode和简单的HTML DOM解析器可以解决您的问题。

(http://stackoverflow.com/questions/138313/how-to-extract-img-src-title-and-alt-from-html-using-php)

答案 1 :(得分:1)

一些RegExp可以帮助您(PHP ManualWikipedia

例如:.*(src=".*[^"]").*

答案 2 :(得分:0)

感谢我使用的所有

    $cnt = 9;
    for($i=0; $i<$cnt; $i++)
    {
    $url    = $xml->channel->item[$i]->link;
    $img    = $xml->channel->item[$i]->description;
    $title  = $xml->channel->item[$i]->title;
    $pattern = '/src="([^"]*)"/';
    preg_match($pattern, $img, $matches);
    $src = $matches[0];
    unset($matches);
    //echo $src;
    echo '<p><a href="'.$url.'" title="'.$title.'"><img '.$src.'</img></a></p>';
    }
}
?>

感谢提示