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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
php 特殊字符处理函数
Sep 05 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
php Memcache 中实现消息队列
Nov 24 PHP
php类中private属性继承问题分析
Nov 01 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
cakephp打印sql语句的方法
Feb 13 PHP
php使用crypt()函数进行加密
Jun 08 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 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扩展CURL的用法详解
2014/06/20 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
IE8 原生JSON支持
2009/04/13 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
开始着手第一个Django项目
2015/07/15 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python谱减法语音降噪实例
2019/12/18 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
资产经营总监岗位职责
2013/12/04 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
战略合作协议书范本
2014/04/18 职场文书
安全口号大全
2014/06/21 职场文书
语文课外活动总结
2014/08/27 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
初中教师个人工作总结
2015/02/10 职场文书
抢劫罪辩护词
2015/05/21 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
推广普通话主题班会
2015/08/17 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript