src=“”的XML数据提取;xyz”;根据描述


XML data extraction of src="xyz" from description

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

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

这是我用来获取XML提要的代码:

<?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或其他变量中?

html_entity_decode和Simple html DOM解析器可以解决您的问题。

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

一些RegExp会帮助你(PHP手册,维基百科(

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

感谢所有我使用的

    $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>';
    }
}
?>

感谢提示