仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1260|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计php中冲破基于HTTP

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:38:33 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我是根据自己的成长历程来写的,如有不对的还请指正。   那末假如思索冲破防盗链的办法,就需求思索在 HTTP_REFERER 下面做四肢举动了。PHP 剧本中对应的变量是 $_SERVER['HTTP_REFERER'] ,它存储了 HTTP_REFERER 的值。

因为直接会见方针 URL 资本已被上述防盗链的办法给屏障,所以咱们需求个相似网关的玩意去获得。说白了就是编写已包装过的 HTTP 头的 PHP 剧本。

上面是复杂的函数完成:
复制代码 代码以下:
function getRemoteFile($url, $refer = '') {
$option = array(
'http' => array(
'header' => "Referer:$refer")
);
$context = stream_context_create($option);
return file_get_contents($url, false, $context);
}

这是个对照复杂的函数,其功效就是捏造 Referer (利用 stream_context_create 函数)然后获得对方的数据(利用 file_get_contents,需求开启 allow_url_fopen )。
假如想“庞杂”一点,可使用 sockets 扩大,这不在这里的会商局限之内。
别的,再供应个获得主机名的正则函数
复制代码 代码以下:
function getHost($url) {
$result = preg_match('/^http:\/\/([\d\w\.]+)\//', $url, $matches);
if (sizeof($matches) >= 2) {
return $matches[1];
} else {
return null;
}
}

再进一步的扩大,可以封装成剧本,然后比如挪用

http://127.0.0.1/proxy.php?url=http://i.am/img就能够获得那些开启防盗链办法的链接了(再发扬下,利用 Javascript 将图片链接全体交换)。
怎么配置呢 ,问最好的老实百度,问啥都有答案。所以用好搜索引擎是学好的令1个关键,程序会出各样的问题,没有1个人可能会碰到所有的问题,所有就可以问百度这个大家精华的集合了。
海妖 该用户已被删除
沙发
 楼主| 发表于 2015-3-11 18:22:52 | 显示全部楼层
做为1门年轻的语言,php一直很努力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-21 07:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表