一个简单,好看的随机图api

作者: maofun 分类: 代码 发布时间: 2020-03-05 22:14

前言

逛github的时候偶然发现了这个api,简洁但是功能挺全的,而且还有一个好看的说明文档以及图片集,所以分享给大家。

github地址

图片一览01

 

图片一览02

 

说明文档

 

建造及使用

下载源码,上传至网站任意目录,打开输入网址即可使用。

说明:

  • 自行添加或修改url.txt,加入图片链接,一行一个,注意不能有多余的空格和空行。
  • 输入yoururl/360.php,可以随机获得360壁纸一张,大小200k左右
  • 输入yoururl/bing.php,可获得bing每日壁纸
  • 输入yoururl/show.php,展示url.txt的所有图片
  • 输入yoururl/description.html,展示说明文档

其他参数:

  • 访问yoururl/,最小偏移到一张随机图
  • 访问yoururl/?id=数字,重置到指定一张图片
  • 访问yoururl/?type=output,服务器读取图片后输出(不建议使用)
  • 访问yoururl/?type=json,返回json格式

{"code":"200","url":"https:\/\/fp1.fghrsh.net\/2019\/07\/15\/c2549aaa63db078834ead6a92fe63b61.jpg","width":"1920","height":"1080","mime":"image\/jpeg","size":"821735"}

  • 访问yoururl/?type=js,输出js

var pic_random='';var pic_end=35;var pic_rdn=34;

修改

我发现输出json格式的时候特别慢,看了一下瞬间发现它用了个getimagesize($x)函数,每次访问的时候都要先对图片进行一次大小计算,自然就慢了。如果不想现场计算又想能够输出大小信息的话,可以将大小信息和url直接写成json格式再写入txt,让php直接读取json即可。

首先,url.txt中的内容应该写成以下格式:

{"name":"01-02.jpg","url":"https://pb.yanshu.work/image/5dc7e14c6ab7c","size":"647.636kb","width":"1280","height":"783"}
JSON格式

同样一行一个,参数可以自行添加减少。

然后修改index.php为:

<?php
$url = explode("\n", file_get_contents('url.txt'));//url数组
$i = array_rand($url);//随机id
$arr = json_decode($url[$i], true); //获取txt文本中随机一行,并将其转换为json格式
$x = ($arr['url']);//随机图片url
$id = $_REQUEST['id'];
$type = $_REQUEST['type'];
switch ($type) {
    case 'json':
        $result = array("code" => "200", "url" => "{$x}");
        $result['id']=$i;
        $result['name']="{$arr['name']}";
        $result['size'] = "{$arr['size']}";
        $result['width'] = "{$arr['width']}";
        $result['height'] = "{$arr['height']}";
        header('Access-Control-Allow-Origin:*'); 
        header('Content-type:text/json');
        echo json_encode($result);
        break;
    case 'js':
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Cache-Control: no-cache");
        header("Pragma: no-cache");
        header("Content-type:application/x-javascript");
        echo "var pic_random=" . "'" . $x . "'" . ";";
        echo "var pic_end=" . count($url) . ";";
        echo "var pic_rdn=" . $i . ";";
        break;
    default:
        if ($id == "") {
            header("Location:$x");
        } else {
            $x = json_decode($url[$id], true)['url'];
            header("Location:$x");
        }
}

测试一下打开速度有了明显提升。

当然,最大的问题还是如何批量生成json格式的txt文档,这时候就建议你学一门编程了,个人认为python最容易上手。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注