开始之前听首歌放松一下:

众所周知,该API的图片全部放在了新浪图床,而新浪图床又加了防盗链,这导致该API使用HTTPS请求时候会403。(如下图)

要么用HTTP就会使全站的https掉了:


去谷歌关于新浪图床防盗链解决办法,目前有这几种
  • 把前缀改成tva,例如 https://tva4.sinaimg.cn/large/0072Vf1pgy1fodqoshzhbj31d60ytawh.jpg (该api随机从tva1~tva4中抽取)
  • 在 wordpress 头部文件(header)加防检测代码, 因为新浪的防盗链功能还比较低级,所以只需要在 wordpress 中的主题文件目录中的 header.php 中前面加入下述代码: <meta name="referrer" content="no-referrer" /> 即可防止新浪检测,缺点是百度统计也用不了了,也许下一次更新就失效了。
  • 使用其他图床,但你图片真有那么多吗?
  • 自建CDN图床,虽然我提倡自建,但是钱包真的受不了。
  • 使用OSS或COS,不考虑原因如上
所以我只要把url部分的ws改成tva即可(也许会失效,但在那之前可以用),以下为修改好版本,您可以直接下载自建或使用我的api,前往https://www.gymxbl.com/api-test/ 详询
<?php
//读取文本
$str = explode("\n", file_get_contents('sinetxt.txt'));
$k = rand(0,count($str));
$sina_img = str_re($str[$k]);
$server = rand(1,4);
$size = 'large';
$url = 'https://tva'.$server.'.sinaimg.cn/'.$size.'/'.$sina_img.'.jpg';
header("Location:".$url);
function str_re($str){
  $str = str_replace(' ', "", $str);
  $str = str_replace("\n", "", $str);
  $str = str_replace("\t", "", $str);
  $str = str_replace("\r", "", $str);
  return $str;
}
?>

努力学习ing