从RSS CDATA获取图像源

时间:2015-07-23 14:30:08

标签: php regex xml rss

我目前有这个功能从RSS Feed中的CDATA中获取图像src字段。

function echo_url($string) {
  preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match);
  return $match[0][0];
}

唯一不好的是它拿起了CDATA中出现的第一个URL而不是图像src本身,无论如何我是否可以访问或返回图像src而不是第一个URL?

这是我得到的CDATA的一个例子。

![CDATA[Duration: 357 sec<br>URL: http://www.test.com/videos/999682/test-test-video<br><img src="http://test.com/images/test.jpg"><br><iframe src="http://embeds.test.com/embed/999682" frameborder=0 width=650 height=518 scrolling=no></iframe>]]

获得之后的所有内容都是&#39; img src&#39;。

任何帮助都会很精彩(在php的初学者身上)

由于

1 个答案:

答案 0 :(得分:1)

如果您只想返回图像源,则此功能将起作用:

/**
 * @param string $cdata
 * @return string|FALSE
 */
function getImgSrc($cdata)
{
    $found = preg_match("/img src=\"([^\"]+)\"/", $cdata, $match);
    if ($found)
    {
        return $match[1];
    }
    else
    {
        return FALSE;
    }
}