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 相关文章推荐
我的论坛源代码(六)
Oct 09 PHP
PHP 柱状图实现代码
Dec 04 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
PHP概率计算函数汇总
Sep 13 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
PHP 断点续传实例详解
Nov 11 PHP
浅谈PHP封装CURL
Mar 06 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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强制下载类型的实现代码
2011/04/21 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
微信小程序开发探究
2016/12/27 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
python基础教程之自定义函数介绍
2014/08/29 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
学习和使用python的13个理由
2019/07/30 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
基于Python解密仿射密码
2019/10/21 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python实现自动签到脚本功能
2020/08/20 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
大学生毕业鉴定
2014/01/31 职场文书
行政主管职责范本
2014/03/07 职场文书
考试诚信承诺书
2014/05/23 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书