PHP实现随机图片API

分享两种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"));
}?>

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2229731.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

PHP实现随机图片API

分享两种PHP随机图片源码,第一种访问本地图片,第二种访问图片链接,代码如下:
<!– 资源宝分享:www.httple.net –>
<?php
header(Cache-Control:no-cache,must-revalidate);
header(Pragma:no-cache);
head……

【Spring Data】JPA 审计功能的使用

文章目录1. 什么是审计2. 在 JPA 中的使用2.1 跟踪创建日期和修改日期2.2 跟踪创建者和修改者2.2.1 写法一(以 Bean 的形式创建)2.2.2 写法二(实现 AuditorAware 接口)2.2.3 基于 Spring Security 的实现3. AbstractAuditable 抽象……

蓝桥杯算法训练1:印章

资源限制
内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入格式 ……

独立主格结构

上篇我们有说到独立主格结构,下面我们来详细地剖析一下独立主格结构是什么。
独立(主格)结构顾名思义是一种独立于主句之外(不受主句限制或影响)的结构。它由两部分组成。前一部分是名词(或代词), 后一部分是现在分词或过去分词(……

上海快递物流展“剧透”抢先看,7月5日齐聚申城

随着市场经济的快速复苏发展以及数字时代的到来,快递物流业对于产品、技术与服务的个性化需求、技术创新、低碳环保、创新创意成为快递物流业行业新趋势,这不仅对品牌方提出了创新要求,也对快递物流企业提出了较高要求,企业要适应……

【剪枝】个人练习-Leetcode-167. Two Sum II – Input Array Is Sorted

之前写标题都没加关键词,发现检索起来还是不太方便的。因此以后都加上相关算法的关键词方便检索。
题目链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/submissions/
题目大意:给出一个非递减数组numbers[]和一个目标……

对接多个 Neuron 实例,实现多网关协同分析与设备联动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxTiQ9Lw-1680846960656)(C:\Users\DELL\Desktop\0407技术号四\0407技术号四图片\对接多个 Neuron 实例,实现多网关协同分析与设备联动 图1.png)]
3 月份,eKuiper 团队主要进行……

新办林业调查设计资质需要符合什么条件,多久能办下来?

一、资质业务范围 森林、草地、湿地、荒漠化土地、野生动植物等资源的调查、监测与评价;林业区划、林草湿土 地变更、石漠化及沙化、林业有害生物等专项调查、监测与评价;林业工程造林核查、有害生物防治核查、采伐限额检查、碳汇计量监测与评价&#xf……

线程池ThreadPoolExecutor原理

文章目录线程池ThreadPoolExecutor原理核心参数如何设置核心线程数和最大线程数线程空闲时间阻塞队列设置线程池的五种状态原理执行流程拒绝策略线程淘汰机制线程池ThreadPoolExecutor原理
核心参数如何设置
核心线程数和最大线程数
线程池中线程数量我们一般要区分任务的类……

Redis的SDS、intSet、Dict、ZipList、QuickList、RedisObject及五种数据结构详解

动态字符串
我们都知道Redis中保存的key是字符串,value 往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构
不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:
1.获取字符串长度需要进行计算
2.……

学会这些终端快捷键,让你在Linux上的操作快100倍

🪶 简述 Linux命令行的许多快捷键与GNU/Emacs编辑器非常像,因此我十分建议可以学习学习emacs编辑器,来了解或发现更多的命令行快捷键。 点此访问emacs官网 点此访问emacs中国(论坛) 简述一下Emacs:Emacs’一切皆快捷键……

手把手教你Temporal Fusion Transformer——Pytorch实战

建立了一个关于能源需求预测的端到端项目: 如何为 TFT 格式准备我们的数据。 如何构建、训练和评估 TFT 模型。 如何获取对验证数据和样本外预测的预测。 如何使用built-in model的可解释注意力机制计算特征重要性、季节性模式和极端事件鲁棒性。
什么是Temporal F……

【Java开发】设计模式 12:解释器模式

1 解释器模式介绍
解释器模式是一种行为型设计模式,它提供了一种方法来解释语言、表达式或符号。
在该模式中,定义了一个表达式接口,并实现了对应的表达式类,这些类可以解释不同的符号组成的表达式,从而实现对语言的……

反序列化渗透与攻防(五)之shiro反序列化漏洞

Shiro反序列化漏洞
Shiro介绍
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默……

vue2+vue3

vue2vue3尚硅谷vue2vue2 课程简介【02:24】vue2 Vue简介【17:59】vue2 Vue官网使用指南【14:07】vue2 搭建Vue开发环境【13:54】vue2 Hello小案例【22:25】了解: 不常用常用:id 更常用 简单class差值总结vue 实例vue 模板 : 先 取 &#xff0……

【hello Linux】环境变量

目录 1. 环境变量的概念 2. 常见的环境变量 3. 查看环境变量 4. 和环境变量相关的命令 5. 环境变量的组织方式 6. 通过代码获取环境变量 7. 通过系统调用获取环境变量 Linux🌷 在开始今天的内容之前,先来看一幅图片吧! 不知道你们是否和我一……

【Linux基础】常用命令整理

ls命令
-a选项,可以展示隐藏的文件和文件夹-l选项,以列表形式展示内容-h,需要和-l搭配使用,可以展示文件的大小单位ls -lah等同于la -a -l -h
cd命令(change directory)
语法:cd [Linux路径]……

客快物流大数据项目(一百一十二):初识Spring Cloud

文章目录
初识Spring Cloud
一、Spring Cloud简介
二、SpringCloud 基础架构图…

C和C++中的struct有什么区别

区别一: C语言中: Struct是用户自定义数据类型(UDT)。 C语言中: Struct是抽象数据类型(ADT),支持成员函数的定义。
区别二:
C中的struct是没有权限设置的&#xff0c……

docker的数据卷详解

数据卷 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方修改会立即同步
一个数据卷可以同时被多个容器同时挂载,一个容器也可以被挂载多个数据卷
数据卷作用:容器数据持久化 /外部机器和容器间接通信 /容器……

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

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