记录一个php实现随机图片的API源码

2024-3-29 / 0 评论 / 121 阅读

源码说明:

接口支持URL/JSON/XML/302跳转和直接显示图片的形式调用,调用URL直接显示图片链接,302跳转是指访问API时跳转到图片文件的链接。


接口①

<?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);  //img目录下的gif,jpg,png
//Domain Setting
$domain = '替换成你的域名';//
//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['shy'];
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;
}
?>

调用:

<img src="你的域名/?shy=302">

接口②

<?php 
$img_array = glob("图片目录/*.{jpg,png}",GLOB_BRACE); 
$url = '你的网址';
$img = array_rand($img_array); 
$result['error']=0;
$result['result']=200;
$result['img']='http://'.$url.''.$img_array[$img];
$type=$_GET['shy'];
switch ($type)
{
case '302':
header("Location:".$result['img']);
break;
default:
echo '';
break;
}

调用

<img src="你的域名/?shy=302">

外链版API

新建一个php文件和images.txt文件,把图片外链的链接放到images.txt里面,一行一个。

<?php
$arr=file('images.txt');
$n=count($arr)-1;
for ($i=1;$i<=1;$i++){
$x=rand(0,$n);
header("Location:".$arr[$x],"\n");
}
?>

还有一个随机接口

下面这个API源码会自动随机获取images文件内所有图片

<?php
$img_array = glob('images/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE);
if(count($img_array) == 0) die('没找到图片文件。请先上传一些图片到 '.dirname(__FILE__).'/images/ 文件夹');
header('Content-Type: image/png');
echo(file_get_contents($img_array[array_rand($img_array)]));
?>

评论一下?

OωO
取消