从XML中获取3个url,随机选择一个保存到变量中


Get 3 URLs from XML, randomly select one to save to variable

我在我的头在这一点-但我现在看起来像这样:

<?php
    $request_url = "http://aethereverywhere.tumblr.com/api/read?type=photo&tagged=ae&start=0&num=1";
    $xml = simplexml_load_file($request_url);
    $img = $xml->posts->post->{'photo-url'};
?>

如果增加&num到3,让我们说-它将拉出三个文件,simplexml_load_file将解析它们-并将它们保存到$img -但我想要的是只有一个URL保存到$img,随机选择。

Thanks for the help

新代码:从0到118(共119)中随机选择一张图像,然后输出,选择分辨率最高的。

<?php
    $request_url = "http://aethereverywhere.tumblr.com/api/read?type=photo&start=".rand(0,118);
    $xml = simplexml_load_file($request_url);
    $img = $xml->posts->post->{'photo-url'};
    $img=(array)$img;
    echo '<img src="'.$img[0].'">';
?>

在0和照片总数-1之间添加一个随机数。也就是说,把它随机放到一行。

$img = $xml->posts->post->{'photo-url'}[$random] // if that's the right syntax.

或者在遍历标签时,随机检查偶数/奇数。

$img = (empty($img) || !$img) ? (rand(10)%2==0) ? $PHOTO_URL : FALSE : $img;

这样做:

$xml = simplexml_load_string($x); // assuming XML in $x, or use simplexml_load_file
$urls = $xml->xpath("//photo-url"); // get all <photo-url> nodes
echo $urls[rand(0,count($urls)-1)]; // echo a random url

查看它的工作情况:http://codepad.viper-7.com/WDq0ha