我必须获取我从PHP中的RSS源获取的图像的URL(而不是链接)。我知道,如果我想获取其中一个Feed标题的链接(而不是url),我必须使用$feed->channel->item->link;
但是如果我想获取Feed项的图像url(而不是链接)并插入它变成一个变量供以后使用?也许$feed->channel->image->url;
- 我使用了这个,但没有任何作用。
这是我用来获取Feed的内容。
function get_google_image($image){
{ $intento=0;
$imagealt=get_the_title(); //its wordpress
$image=get_the_title();
$words = explode(" ", $image);
$imagetitle = implode(" ", array_splice($words, 0, 2));
$image = implode(" ", array_splice($words, 0, 2));
$image=str_replace(" ","+",$image);
while (!$feed=simplexml_load_file("http://obsrv.com/General/ImageFeed.aspx?'$image'")){
$attempt+=1;
if ($attempt>5) break;
print "Retry".$attempt."<br>";
}
$imagelink=$feed->channel->image->url; //Here is the problem, this variable finally gets empty and i want it to be the url of the image so i can post it with html later in the line below
echo '<img title="' . $imagetitle . '" alt="' . $imagealt . '" src="' . $imagelink . '"/>';
}}
Feed是http://obsrv.com/General/ImageFeed.aspx? (这里是带有图像搜索关键字的变量)我想从rss提要列表中获取第一个项目(第一个图像,因为每个rss帖子只有一个图像,并且还有一个图像作为附加到帖子的文件如果这有助于你帮助我)。所以我想得到这个图像并将url取出一个变量,然后我可以制作一个用于发布图像的HTML代码。
echo '<img title="' . $imagetitle . '" alt="' . $imagealt . '" src="' . $imagelink . '"/>';
答案 0 :(得分:1)
您的代码中有几个问题:
从the help page,我可以看到您提供了错误的网址结构:
"http://obsrv.com/General/ImageFeed.aspx?'$image'"
应该是:
"http://obsrv.com/General/ImageFeed.aspx?q=" . $image . ""
我认为代码中存在错误:
首先,将$image
设置为get_google_image($image)
的函数参数
然后设置从wordpress的函数中取得的$image
。我不知道这是不是你想要的方法。
此代码也有错误:
$image=str_replace(" ","+",$image);
我认为这就是你要找的东西:
$image = urlencode($image);
另一个问题是,您向simplexml_load_file()
提供了网址。
更新:Phil指出如果启用了fopen HTTP包装,simplexml_load_file()
可以使用URL。但是,如果它被禁用,您可以使用此代码作为解决方法:
$raw_html = file_get_contents( "http://obsrv.com/General/ImageFeed.aspx?q=$image" );
$feed=simplexml_load_string( $raw_html );