欢迎来到 岁月小筑

随机图片API:PHP随机调用文件夹下的图片

前言

之前看到一个活宅朋友,做了个随机图片API。于是,我也忍不住,想弄一个。然后,就没有然后了(捂脸)。最近才又想起来,于是就决定老老实实弄一个。

注意事项

1、本API有缓存,也就是修改PHP文件后可能有些东西不会即时生效,我也不知道缓存在哪里了,估计是在服务器上,也不知道如何清除缓存,需要等待一段时间后,才会刷新

2、本源码放在网站根目录,则调用的文件夹为根目录下的img文件夹内的图片

3、本源码具有HTTP/HTTPS自适应

4、本源码支持URL、JSON、XML、302跳转以及直接显示图片的形式调用。其中URL指的是的直接显示图片链接,302跳转指的是访问API时会跳转到图片文件的链接。

5、请修改$domain = 为自己的域名

6、如有任何疑问,请在评论区评论,我看到以后也会当做没看到(逃

源码

<?php 
//This will get an array of all the gif, jpg and png images in a folder 
$img_array = glob("img/*.{gif,jpg,png}",GLOB_BRACE); 

//Domain Setting
$domain = 'www.xjh.me';

//Pick a random image from the array 
$img = array_rand($img_array); 

//XML Return
function array2xml($array, $wrap='ROOT', $upper=true) {
    // set initial value for XML string
#    $xml = '';
    // wrap XML with $wrap TAG
    if ($wrap != null) {
        $xml = "<$wrap>\n";
    }
    // main loop
    foreach ($array as $key=>$value) {
        // set tags in uppercase if needed
        if ($upper == true) {
            $key = strtoupper($key);
        }
        // append to XML string
        $xml .= "<$key>" . htmlspecialchars(urldecode(trim($value))) . "</$key>";
    }
    // close wrap TAG if needed
    if ($wrap != null) {
        $xml .= "\n</$wrap>\n";
    }
    // return prepared XML string
    return $xml;
}

//Result Generate
$result['error']=0;
$result['result']=200;
$result['img']='//'.$domain.'/'.$img_array[$img];

//Type Choose
$type=$_GET['type'];
switch ($type)
{

//HTML
case 'url':
echo $result['img'];
break;

//JSON
case 'json':
header('Content-type:text/json');
echo json_encode($result, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
break;

//XML
case 'xml':
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo array2xml($result);
break;

//302 Redirect
case '302':
header("Location:".$result['img']);
break;

//IMG
default:
echo '<img alt="'.$result['img'].'" src="'.$result['img'].'" />';
break;
}

实现效果

Json:

PHP随机调用图片

XML:

PHP随机调用图片

点赞
  1. 杰克说道:

    非常喜欢这个源码

    1. littleplus littleplus说道:

      谢谢大佬的支持

      1. wild说道:

        大佬,请问用了你这个源码能搞出像你那个api一样的网址嘛

        1. littleplus littleplus说道:

          光这个代码不行,我的api在之后又修改了很多次的

          1. wild说道:

            我是从一个qq美化找来的,但是不太喜欢二次元的,所以大佬有办法吗

          2. 嘻嘻嘻说道:

            怎么办求教

        2. littleplus littleplus说道:

          普通的直接用我的代码就可以了,用的图片你想用什么都可以。要是有更多的要求,那只能加钱了

          1. 匿名说道:

            多少

          2. wild说道:

            多少

          3. wild说道:

            大佬留个联系方式,我们好好谈谈

  2. 汐岑君说道:

    大佬怎么怎么弄调用限制啊就限制每天的调用次数

    1. littleplus littleplus说道:

      目前用的Redis来限制日调用次数,具体方法....

  3. 子豪说道:

    很感谢 大佬的 随机背景图的 api共享 谢谢 我的小站。。。
    之前也是 看着别人 的 api 一言啊 随机背景图 什么的 巨羡慕 哈哈哈哈 但自己还是一直不会写
    感谢 大佬的教程 嘻嘻 虽然没看懂 但还是感谢 嘻嘻

发表评论

电子邮件地址不会被公开。