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+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
php 图片上添加透明度渐变的效果
Jun 29 PHP
php分页示例分享
Apr 30 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
php阳历转农历优化版
Aug 08 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
详解no input file specified 三种解决方法
Nov 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
Composer设置忽略版本匹配的方法
2016/04/27 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
JS实现li标签的删除
2019/04/12 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python中django学习心得
2017/12/06 Python
简单实现Python爬取网络图片
2018/04/01 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
实习求职信
2013/12/01 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
护士实习鉴定范文
2013/12/22 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
活动总结报告怎么写
2014/07/03 职场文书
外国人来华邀请函
2015/01/31 职场文书
人代会简报
2015/07/21 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书