单向历源站调用PHP脚本

这个小事情确实让我研究了好久,所以决定分享下。

大概五个月前,在原作者Solstice23的Argon主题内,我发现了单向历功能模块。这个模块我很想要,但是自己搞了半天发现实现不了。于是我联系到了Solstice23,他的答复简明扼要:

https://img.owspace.com/Public/uploads/Download/YYYY/MM/DD.jpg

这个地址有 Referer 限制,不是空 Referer 很大可能被 Block,后端反代下这个地址就可以。

原因找到了,是因为我直接引用被Block掉了。所以我又开始从零研究啥是反向代理。最后被主机服务商告知虚拟主机不支持反向代理啊你个菜鸡。带着疑惑,我又问了下Solstice23怎么解决。得到了这样的答复:

可以写个 php,file_get_contents 然后返回

我十分感动和感激,同时流下泪水。因为我一个字儿也看不懂。

众所周知,当攻城狮为你科普一个技术问题的时候,一般都是从第四步开始说。

就这样时间过去了四个月。我把此事完全搁置了。

 

直到有一天AIGEEK的出现一举击破了这一难题!

在我发送邮件说明难处后,AIGEEK大手一挥,说没关系,我发脚本给你!

AIGEEK同志,如果你能看到这段,请接受我的敬礼。

你简直是科尔沁草原上的雄鹰!

如大家所见,脚本我就公布在下面了,大家需要的可以拿去自己用。解决方法有俩,一个是用自己的服务器设置nginx反代,比较方便简单,但是有的虚拟主机不支持。第二种方法可以写一个php,在访问的时候先从源站下载下图片,再从本地调用。

原脚本唯一有一点问题的就是,你购买的主机可能使用的是格林威治时间,导致单向历更新晚8个小时,这个时候需要在脚本内添加一行代码date_default_timezone_set(“PRC”);,调整时区为东八区。我在这里已经添加进去了。

让我们祝Solstice23同志万寿无疆,祝AIGEEK同志身体健康,顺便祝我自己比较健康。

<?php
function getSslPage($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
date_default_timezone_set("PRC");
$url = "https://img.owspace.com/Public/uploads/Download/" . date('Y/md') . ".jpg";
header('Content-Type:image/jpeg');
echo getSslPage($url);

评论

  1. 朗升
    Chrome
    4月前
    2021-3-31 20:15:58

    很棒

    • Temple
      Chrome
      4月前
      2021-3-31 20:23:03

      |´・ω・)ノ

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇