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中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
PHP面向对象概念
Nov 06 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
学习php分页代码实例
Oct 24 PHP
PHP内核探索:变量概述
Jan 30 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php常见的魔术方法详解
Dec 25 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
php微信开发之百度天气预报
Nov 18 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP递归的三种常用方式
Feb 28 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
php获取汉字首字母的函数
2013/11/07 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
浅析NumPy 切片和索引
2020/09/02 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
事假请假条范文
2014/04/11 职场文书
美国留学经济担保书
2014/05/20 职场文书
模范班主任事迹材料
2014/12/17 职场文书
2016春季运动会前导词
2015/11/25 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android