php中HTTP_REFERER函数用法实例


Posted in PHP onNovember 21, 2014

本文实例分析了php中HTTP_REFERER函数用法。分享给大家供大家参考。具体分析如下:

利用php的http_referer函数来判断用户的来路,这是比较简单的,实例代码如下:

<?php 

   if (isset($_SERVER['HTTP_REFERER'])) { 

     print "The page you were on previously was {$_SERVER['HTTP_REFERER']}<br />"; 

   } else { 

     print "You didn't click any links to get here<br />"; 

      } 

    ?> 

<a href="refer.php">Click me!</a>

下面是我们让用户不知道我们的来路处理,实例代码如下:
<?php 

$host = "3water.com"; 

$referer = "http://".$host; 

$fp = fsockopen ($host, 80, $errno, $errstr, 30); 

if (!$fp){ 

        echo "$errstr ($errno)<br>;n"; 

}else{ 

$request = " 

GET / HTTP/1.1 

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */"."* 

Referer: http://$host 

Accept-Language: zh-cn 

Accept-Encoding: gzip, deflate 

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 

Host: $host 

Connection: Close" 

."rnrn"; 

 

fputs ($fp, "$request"); 

while (!feof($fp)) 

{ 

   $res[] = fgets($fp,1024); 

} 

$html = join("",$res); 

fclose ($fp); 

$fp = file_put_contents("123cha.html",$html); 

echo "done";

}

这不就行了?

不过很奇怪的是,3water.com 的页面抓下来是乱码(除了http头),这是为什么?难道是因为用了gzip之类压缩?

<?php 

$host = "3water.com"; 

$html = file_get_contents("http://".$host); 

$fp = file_put_contents("hao123.html",$html); 

echo "done"; 

?>;

但这样抓的就没问题,再来分析开始抓的http头:

HTTP/1.1 200 OK Date: Wed, 31 Aug 2005 00:59:36 GMT Server: Apache/1.3.27 Cache-Control: max-age=1296000 Expires: Thu, 15 Sep 2005 00:59:36 GMT Last-Modified: Mon, 29 Aug 2005 13:56:00 GMT Accept-Ranges: bytes Connection: close Content-Type: text/html Content-Encoding: gzip Content-Length: 14567

果然有这句,Content-Encoding:gzip ,原来压缩了的,长度14567字节了,用第二种方法抓,原来没压缩的html是71143字节,原来file_get_contents还可以自动解压缩.

php实例二,代码如下:

<?php 

$host = '127.0.0.1'; 

$target = '/2.php'; 

$referer = 'https://3water.com'; //伪造HTTP_REFERER地址 

$fp = fsockopen($host, 80, $errno, $errstr, 30); 

if (!$fp){ 

echo "$errstr($errno)<br />n"; 

}  

else{ 

$out = " 

GET $target HTTP/1.1 

Host: $host 

Referer: $referer 

Connection: Closernrn"; 

fwrite($fp, $out); 

while (!feof($fp)){ 

echo fgets($fp, 1024); 

} 

fclose($fp); 

} 

?>

另一个2.php文件很简单,只是写上一行读取当前的HTTP_REFERER服务器值的代码即可,如下:
<?php 

echo "<hr />"; 

echo $_SERVER["HTTP_REFERER"]; 

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php 分页类 扩展代码
Jun 11 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
Mar 14 PHP
php中call_user_func函数使用注意事项
Nov 21 #PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 #PHP
php常用数学函数汇总
Nov 21 #PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 #PHP
php防止恶意刷新与刷票的方法
Nov 21 #PHP
php采用curl实现伪造IP来源的方法
Nov 21 #PHP
php文件缓存类汇总
Nov 21 #PHP
You might like
PHP的FTP学习(二)
2006/10/09 PHP
php适配器模式介绍
2012/08/14 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
微信上传视频文件提示(推荐)
2018/11/22 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
python的id()函数解密过程
2012/12/25 Python
python实现2014火车票查询代码分享
2014/01/10 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
python+django加载静态网页模板解析
2017/12/12 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Django forms组件的使用教程
2018/10/08 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Pyqt5自适应布局实例
2019/12/13 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
英语故事演讲稿
2014/04/29 职场文书
首都博物馆观后感
2015/06/05 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL