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

Php 从XML中获取3个URL,随机选择一个保存到变量,php,xml,tumblr,Php,Xml,Tumblr,在这一点上,我的想法有些过头了,但我现在的想法是这样的: <?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'};

在这一点上,我的想法有些过头了,但我现在的想法是这样的:

<?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'};
?>
$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
posts->post->{'photo-url'};
?>
如果将&num增加到3,那么它将提取三个文件,simplexml\u load\u文件将解析它们,并将它们保存到$img,但我希望只将一个URL保存到$img,随机选择


感谢您的帮助

在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;

新代码:选择从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].'">';
?>
posts->post->{'photo-url'};
$img=(数组)$img;
回声';
?>
这样做:

<?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'};
?>
$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
$xml=simplexml\u load\u string($x);//假设XML为$x,或使用simplexml\u加载\u文件
$url=$xml->xpath(“//照片url”);//获取所有节点
echo$url[rand(0,count$url)-1];//回显随机url

查看它的工作情况:

如果你从一个随机数开始,并限制为1,这对你有效吗?你使用v1 API有什么原因吗?我使用v1 API是因为它是我可以理解的—不幸的是,我在v2上没有任何运气。我不确定我是否遵循—我不确定如何引入随机数。请检查-。它的语法相当简单-rand($min,$max)。设置$min=0和$max=total照片url标记-1这对我来说更有意义-但不起作用:即使我设置了num=20,每次只返回同一个url-我认为这可能与simplexml\u load\u文件一次不接受多个帖子有关?你在共享web主机上吗
simplexml\u load\u file
可能已被阻止,这在我的本地计算机上运行良好。我没有收到错误消息-它正在解析和显示URL,但每次都是相同的。所有URL都非常相似,它们都以
http://25.media.tumblr.com/9dacd072c8716f8674900c292669c7ff/tumblr_mkfi5rjsoo1qmvy8zo1_
当我更改
num=3
num=2
时,它们仍然输出相同的图像集。我更新了代码以显示图像,每次都应该是不同的GIF。