单 PHP 文件获取 Bing 每日图片

单 PHP 文件获取 Bing 每日图片

代码如下:

<?php
// 判断是否随机调用
$gettimebase = isset($_GET['day']) ? $_GET['day'] : '';
if (isset($_GET['rand']) && $_GET['rand'] === 'false') {
    $gettime = empty($gettimebase) ? 0 : $gettimebase;
} else {
    // 若不为随机调用则判断是否指定日期
    $gettime = empty($gettimebase) ? rand(-1, 7) : $gettimebase;
}

// 获取 Bing Json 信息
$mkt = isset($_GET['cn']) && $_GET['cn'] === 'true' ? 'zh-CN' : 'en-US';
$json_string = file_get_contents("https://www.bing.com/HPImageArchive.aspx?format=js&idx=$gettime&n=1&mkt=$mkt");

// 转换为 PHP 数组
$data = json_decode($json_string);

// 提取基础 URL
$imgurlbase = "https://www4.bing.com{$data->images[0]->urlbase}";

// 判断是否指定图片大小
$imgsizebase = isset($_GET['size']) ? $_GET['size'] : '';
$imgsize = empty($imgsizebase) ? "1920x1080" : $imgsizebase;

// 建立完整 URL
$imgurl = "{$imgurlbase}_{$imgsize}.jpg";

// 获取其他信息
$imgtime = $data->images[0]->startdate;
$imgtitle = $data->images[0]->title;
$imglink = $data->images[0]->copyrightlink;

// 判断是否只获取图片信息
if (isset($_GET['info']) && $_GET['info'] === 'true') {
    echo "{title:$imgtitle,url:$imgurl,link:$imglink,time:$imgtime}";
} else {
    // 若不是则跳转 URL
    ob_start();
    header("Location: $imgurl");
    ob_end_flush();
}
?>

将代码保存为 bing.php 并上传至您的主机,访问 yourdomain.com/bing.php 即可,可选的参数如下:

参数代码 参数含义 可用参数
rand 是否随机显示最近8天内的图片 true or false
day 显示指定的最近图片 -1, 0, 1, 2, 3, 4, 5, 6 ,7
0 为今天,-1 为明天
size 指定获取图片大小
  • 1920x1080
  • 1366x768
  • 1280x768
  • 1024x768
  • 800x600
  • 800x480
  • 768x1280
  • 720x1280
  • 640x480
  • 480x800
  • 400x240
  • 320x240
  • 240x320
  • 注:中间的 “x” 为英文小写字母 “x”
info 获取图片基础信息(JSON 格式) true or false
cn 是否获取国内版的图片 true or false
* 以上所有参数均非必要,默认为: rand=true,day=0,size=1920x1080,info=false,cn=false

例如,随机获取大小 320x240 的图片则可以引用:

yourdomain.com/bing.php?rand=true&size=320x240

部署至 Vercel:

将 bing.php 存入 api 文件夹,并新建 vercel.json

{
  "functions": {
    "api/*.php": {
      "runtime": "vercel-php@0.6.0"
    }
  },
  "routes": [
  	{ "src": "/bing/api(.*)","dest": "api/bing.php", "headers": { "Access-Control-Allow-Origin": "*" }}
  ]
}

整体目录如下:

- 项目文件夹
  - api
    - bing.php
  - vercel.json
  - index.html //可选

在项目文件夹内部署 vc --prod

访问 random.vercel.app/bing/api 即可

Read more

Mastodon 数据库升级实战:从 PostgreSQL 12 到 14 全记录

在今日拉取 glitch-soc/mastodon:edge 时,发现 Mastodon 最新版本对数据库的要求提升至至少 PostgreSQL 13,而我的部署环境中一直依赖 Docker Compose ,使用的是 PostgreSQL 12。为了保证后续更新不出问题,冲了一波版本升级。 下面是数据库升级的详细过程: 以下 dc 均为 docker compse 的简写 修改 docker-compose 配置 首先,给 db 服务添加 volume: db: volumes: - ./postgres:/var/lib/postgresql/data - ./dumps:/dumps 单独重启数据库 dc down dc up -d

By YJK
榨干 ORACLE ARM 5/ 安装 Windows

榨干 ORACLE ARM 5/ 安装 Windows

不建议,具有删号的风险、具有变砖的风险。不适合不会救砖的同学。 准备工作 登录 OCI 后台,设置一下实例【传输中加密】为【已禁用】 安装依赖 apt install curl wget -y 安装 Windows 1、DD 的方式,大概历时 15 分钟 curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh && bash reinstall.sh dd --img https://r2.hotdog.eu.org/win11-arm-with-pagefile-15g.

By YJK
自建 Docker Hub 镜像

自建 Docker Hub 镜像

使用 Nginx server { listen 443 ssl; server_name 域名; ssl_certificate 证书地址; ssl_certificate_key 密钥地址; ssl_session_timeout 24h; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; location / { proxy_pass https://registry-1.docker.io; # Docker Hub 的官方镜像仓库 proxy_

By YJK
[AD] 闲置 VPS 挂机赚钱 | 已提现超过 100 USD

[AD] 闲置 VPS 挂机赚钱 | 已提现超过 100 USD

闲置 VPS 挂机销售流量赚钱,通过以下链接注册赠送 5USD,即只要再挂满 5USD 便可提现 10USD,可通过 USDT(TRC20) 提现至 Crypto 钱包。 * https://traffmonetizer.com/?aff=793646 根据 TM 最新的政策, 新注册账号未赠送 5 USD。 还有一个 Repocket,注册送 5U,满 20U 10USD 提现。 Repocket 更新了它的提现政策,满 10 刀即可通过 Paypal、Wise 提现。 * https://link.repocket.co/BTrB Traffmonetizer 挂机方法 1/

By YJK
Mastodon