首页 > 编程语言 >PHP实现随机图片API

PHP实现随机图片API

时间:2023-04-07 19:33:29浏览次数:46  
标签:arr PHP API 随机 0xFF total round imgurl 图片

分享两种PHP随机图片源码,第一种访问本地图片,第二种访问图片链接,代码如下:


<!-- 资源宝分享:www.httple.net -->
<?php
header('Cache-Control:no-cache,must-revalidate');
header('Pragma:no-cache');
header("Expires:0");
header("Access-Control-Allow-Origin:*");
//处理请求输出数据
//这将得到一个文件夹中的所有gif,jpg和png图片的数组
$rand=rand(0,1);
if($rand){
    $localurl="img/*.{gif,jpg,png}"; //图片所在文件夹
}else{
    $localurl="img/*.{gif,jpg,png}";
}
$img_array=glob($localurl,GLOB_BRACE);
//从数组中选择一个随机图片 
$img=array_rand($img_array);
$imgurl=$img_array[$img];
$https=isset($_GET["https"])?$_GET["https"]:1;
if($https == "true"){
    $imgurl='https://'.$_SERVER['SERVER_NAME'].'/'.$imgurl;
}else{
    $imgurl='http://'.$_SERVER['SERVER_NAME'].'/'.$imgurl;
}
if(isset($_GET["type"])?$_GET["type"]:1=="json"){
    $rTotal='0';
    $gTotal='0';
    $bTotal='0';
    $total='0';
    $imageInfo = getimagesize($img_array[$img]);
    //图片类型
    $imgType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));
    //对应函数
    $imageFun = 'imagecreatefrom' . ($imgType == 'jpg' ? 'jpeg' : $imgType);
    $i = $imageFun($img_array[$img]);
    //测试图片,自己定义一个,注意路径
    for($x=0;
    $x<imagesx($i);
    $x++){
        for($y=0;
        $y<imagesy($i);
        $y++){
            $rgb=imagecolorat($i,$x,$y);
            $r=($rgb>>16)&0xFF;
            $g=($rgb>>8)&0xFF;
            $b=$rgb&0xFF;
            $rTotal+=$r;
            $gTotal+=$g;
            $bTotal+=$b;
            $total++;
        }
    }
    $rAverage=round($rTotal/$total);
    $gAverage=round($gTotal/$total);
    $bAverage=round($bTotal/$total);
    $arr=array('ImgUrl'=>$imgurl,'Color'=>"$rAverage,$gAverage,$bAverage");
    echo json_encode($arr);
    exit();
}
//在页面显示图片地址
//echo $imgurl;
header("location:$imgurl");


<?php
//资源宝分享:www.httple.net
//存有美图链接的文件名img.txt
$filename = "img.txt";
if(!file_exists($filename)){
    die('文件不存在');
}
 
//从文本获取链接
$pics = [];
$fs = fopen($filename, "r");
while(!feof($fs)){
    $line=trim(fgets($fs));
    if($line!=''){
        array_push($pics, $line);
    }
}
 
//从数组随机获取链接
$pic = $pics[array_rand($pics)];
 
//返回指定格式
$type=$_GET['type'];
switch($type){
 
//JSON返回
case 'json':
    header('Content-type:text/json');
    die(json_encode(['pic'=>$pic]));
 
default:
    die(header("Location: $pic"));
}
 
?>


标签:arr,PHP,API,随机,0xFF,total,round,imgurl,图片
From: https://blog.51cto.com/yunbk/6176509

相关文章

  • PHP代码实现网页缓存
    PHP程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存:一、文件缓存二、数据查询结果缓存,使用内存来实现高速缓存本例主要使用文件缓存,主要原理使用缓存函数来存储网页显示结果,如果在规定时间里再次调用则可以加载缓存文件。类代码://......
  • 电商API原数据接口的应用场景
    电商API的作用主要有以下几点:1.方便第三方开发商和合作伙伴开发扩展应用,提升电商平台的业务价值。2.提高电商平台的运营效率和管理水平,缩短数据处理和交互的时间。3.对外提供规范统一的数据接口,降低了系统间的耦合度,保证了平台数据的安全性和稳定性。4.为电商平台的数据分析和......
  • API网关:开源Apinto网关-上游服务篇
    背景介绍Apinto是一款高性能、可扩展、易维护的API网关。Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,企业级开箱即用。Apinto除了提供丰富的网关插件外,还将提供监控告警、用户角色等企业插件,同时支持自定义网关插件和可扩展企业插件......
  • 【web 开发基础】PHP 的流程控制之嵌套(巢状)条件分支结构 -PHP 快速入门 (15)
    嵌套条件分支结构嵌套条件分支结构,也称为巢状条件分支结构。其实就是将if语句进行嵌套,即是在if或者else后面的语句块中又包含if语句。if语句可以无限层第嵌套在其他if语句中,这给程序的不同部分的条件执行提供了充分的弹性,是程序设计中经常使用的技术。其语法格式如下所示:if(表达式1......
  • 开源Apinto网关-流量策略
    背景介绍Apinto是一款高性能、可扩展、易维护的API网关。Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,企业级开箱即用。Apinto除了提供丰富的网关插件外,还将提供监控告警、用户角色等企业插件,同时支持自定义网关插件和可扩展企业插件,满足......
  • Gamma Capitals列入金融委员会示警名单!投资者需警惕!
    如果你有在关注外汇天眼发布的曝光文章,相信对各种诈骗新闻与手法一定不陌生。不过最近却发生了不太一样的犯罪案件,受害者不是别人,正是诈骗集团的车手,接下来让我们一起了解这个离奇的「黑吃黑」事件经过。据了解,去年12月中旬,本案主谋许姓男子在通讯软件上认识昵称为「哈特利」的网友......
  • API 测试 | 了解 API 接口测试 | API 接口测试指南
    什么是API?API是一个缩写,它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程,协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。例行程序:执行特定任务的程序。例程也称为过程,函数或子例程。协议:在两个系统之间传输数据的格......
  • 服务 API 设计之 ——API 参数规范
    【强制】字段名称用小驼峰风格【强制】ServiceAPI返回值必须使用Response包装ServiceAPI返回值强制要求进行通用包装,例如:Response。Response的作用:统一方法表示API调用是否成功API调用失败时,统一格式反馈错误Code,错误Message统一的Response易于调用方经验复用,框架集......
  • JS生成随机颜色
    //传统写法functionrandomColor1(){varr=Math.floor(Math.random()*256),g=Math.floor(Math.random()*256),b=Math.floor(Math.random()*256);return`rgb(${r},${g},${b})`;}//取巧functionrand......
  • PHP 通过创建临时表实现更高速的IN查询
    /***xmsb_fastIn通过创建临时表实现更高速的IN查询*@returnarray*/functionxmsb_fastIn($tb_name,//要执行in查询的表名$field_name,//要执行in查询的字段名$data_array,//in查询的条件数据集$not_i......