0

此时我已经不知所措了——但我目前的样子是这样的:

<?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,随机选择.

谢谢您的帮助

4

3 回答 3

2

新代码:从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].'">';
?>
于 2013-05-05T23:31:29.853 回答
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;
于 2013-05-05T23:21:22.780 回答
0

像这样做:

$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

于 2013-05-05T23:59:49.083 回答