前言
使用PHP代码实现一个简易的随机图API,随机的图片可以来自于对象存储、CDN或其它任何已知的图片链接。
代码实现
<?php
$arr = array(
'https://221.ltd/wp-content/uploads/2023/08/20230804135126639.png',
'https://221.ltd/wp-content/uploads/2023/08/20230804135116921.png',
'https://221.ltd/wp-content/uploads/2023/08/20230804135104564.png',
'https://221.ltd/wp-content/uploads/2023/08/20230804135051912.png',
'https://221.ltd/wp-content/uploads/2023/08/20230804135041248.png'
);
$key = array_rand($arr, 1);
Header("HTTP/1.1 302");
Header('Location: ' . $arr[$key]);
exit;
注意:
- 可以在
$arr
中添加更多的已知图片链接 $key = array_rand($arr, 1);
是随机而不是轮询,因此有概率出现连续多次出现同一张图片- 使用302跳转,即临时重定向,这样浏览器默认不会缓存跳转的目标,表现为每次刷新得到的图片几乎都不同;如果使用301跳转(永久重定向),则需要
Header
中额外添加禁止缓存声明,否则浏览器会把随机(重定向)的结果缓存下来。Header("HTTP/1.1 301 Moved Permanently"); Header("Cache-Control: no-cache, must-revalidate");
- 最后一行的
exit;
应当保留,确保此php程序正常退出
之后把上述代码保存成php文件,可以把它直接丢到WordPress的工作目录中,得到随机图API
your.wordpress.domain/rd-pic.php
其中your.wordpress.domain
为WordPress主站域名,rd-pic.php
为保存的文件名
设置防盗链
如果使用对象存储或CDN作为图床,建议在服务提供商那里配置防盗链(一般是通过限制referer实现)
在线演示
本站的封面随机图API为
https://221.ltd/random-sekai.php
(已开启防盗链,仅供预览演示)
Comments NOTHING