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面向对象的使用教程 简单数据库连接
Nov 25 PHP
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
php文档更新介绍
Jul 22 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
php实现的任意进制互转类分享
Jul 07 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php中用unset销毁变量并释放内存
May 10 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
javascript编程起步(第二课)
2007/02/27 Javascript
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
PHP7新特性简述
2017/06/11 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
节约用水的口号
2014/06/20 职场文书
机关作风建设整改方案
2014/10/27 职场文书
主持稿开场白
2015/06/01 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
Nginx限流和黑名单配置
2022/05/20 Servers