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中str_replace函数使用小结
Oct 11 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
May 30 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
php格式文件打开的四种方法
Feb 24 PHP
laravel 验证错误信息到 blade模板的方法
Sep 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
Windows 64位下python3安装nltk模块
2018/09/19 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
八年级物理教学反思
2014/01/19 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
导游词怎么写
2015/02/04 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
行为规范主题班会
2015/08/13 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android
MySQL 条件查询的常用操作
2022/04/28 MySQL