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 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 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连接mssql:pdo odbc sql server
2011/07/20 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
php强制运行广告的方法
2014/12/01 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
学校元旦晚会开场白
2014/12/14 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
2019银行竞聘书
2019/06/21 职场文书
导游词之崇武古城
2019/10/07 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
Python破解极验滑动验证码详细步骤
2021/05/21 Python