免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4873 | 回复: 5
打印 上一主题 下一主题

[fsockopen]使用 fsockopen获取的数据中怎么多出来几个字符???有经验的进来看看 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-16 14:05 |只看该作者 |倒序浏览
使用 fsockopen获取的数据中怎么多出来几个字符???有经验的进来看看

以下是获取到的内容,怎么会有红色部分的那几个字符呢?
不应该有的啊
多了那几个字符地,我用explode("\r\n\r\n",$getCon,2)就无法分解出http头和具体的HTML源码了,郁闷
HTTP/1.1 200 OK
Date: Sun, 16 Jul 2006 03:54:04 GMT
Server: Apache/2.0.54 (Unix) PHP/4.4.2 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.1.4
X-Powered-By: PHP/4.4.2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=f92f15377c06413920171635fac09575; path=/
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

1f03
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>BT电影免费下载</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gbk">

<link href="./templates/itdoor/{$images}/style.css" rel="stylesheet" type="text/css">
</HEAD>
以下内容省略

PHP代码如下:
  1. $url = 'http://www.sohu.com';
  2.         $purl = parse_url($url);
  3.         $host = $purl['host'];
  4.         $path = $purl['path'];
  5.     if (isset($purl['query']))
  6.                 $path.='?'.$purl['query'];
  7.         $fp = fsockopen($host, 80, $errno, $errstr, 10);
  8.         if (!$fp) {
  9.             echo $errno.$errstr;
  10.         } else {

  11.         $out = "GET $path HTTP/1.1\r\n";
  12. //        $out.= "Accept: */*\r\n";
  13. //        $out.= "Accept-Language: zh-cn\r\n";
  14. //        $out.= "UA-CPU: x86\r\n";
  15. //        $out.= "Accept-Encoding: gzip, deflate\r\n";
  16.         $out.= "Referer: http://$host\r\n";
  17.         //$out.= "If-Modified-Since: Wed, 10 Aug 2005 09:52:06 GMT\r\n";
  18.         //$out.= "If-None-Match: \"56c8152b919dc51:ddd\"\r\n";
  19.         $out.= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)\r\n";
  20.         $out.= "Host: $host\r\n";
  21.         $out.= "Connection: Close\r\n";
  22.         //$out.= "Cookie: rtime=7; ltime=1124891230804; cnadmin=true\r\n";
  23.         $out.="\r\n";

  24.             fwrite($fp, $out);
  25.             while (!feof($fp)) {
  26.                 $con.= fgets($fp, 1024);
  27.             }
  28.             fclose($fp);
  29.         }


  30.     echo $con;
复制代码

偶使用 Httplook这个软件去捕捉IE收到的信息时,根本没有这几个字符的

[ 本帖最后由 YourEyes 于 2006-7-16 14:08 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-07-16 15:09 |只看该作者
HTTP头本身里面一些字符集是乱码,php你这么来的化应该需要过滤一下吧

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2006-07-16 15:30 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2006-07-16 16:17 |只看该作者
原帖由 liheyuan 于 2006-7-16 15:09 发表
HTTP头本身里面一些字符集是乱码,php你这么来的化应该需要过滤一下吧

咋过滤呢??

我是要抓取远程URL的HTML码
服务器上不能访问远程地址,只能使用 FSOCKOPEN来

论坛徽章:
0
5 [报告]
发表于 2006-07-16 16:18 |只看该作者
原帖由 HonestQiao 于 2006-7-16 15:30 发表
http://topic.csdn.net/t/20011114/13/370170.html

研究一下子协议。
7.1     实体标题域(Entity   Header   Fields)   
   
  实体标题域中定义了一些可选的元信息,如有无实体、请求资源。   
   
  Entity-Header     =   Allow ;   Section   10.1   
  |   Content-Encoding ;   Section   10.3   
  |   Content-Length ;   Section   10.4   
  |   Content-Type ;   Section   10.5   
  |   Expires ;   Section   10.7   
  |   Last-Modified ;   Section   10.10   
  |   extension-header   
   
  extension-header   =   HTTP-header   
   
  扩展标题(extension-header)机制允许在不改变协议的前提下定义附加的实体标题域,   
  但是不能假定接收方可以识别这些域。对于不可识别的标题域,接收方一般是忽略不管,而   
  代理则继续将其向前推送。   



我上面得到的乱码好像就是  extension-header   =   HTTP-header   这玩艺儿啊

但是如何过滤呢

[ 本帖最后由 YourEyes 于 2006-7-16 16:21 编辑 ]

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-10-11 06:20:00数据库技术版块每日发帖之星
日期:2015-10-12 06:20:00数据库技术版块每日发帖之星
日期:2015-10-15 06:20:00数据库技术版块每日发帖之星
日期:2015-10-30 06:20:00综合交流区版块每月发帖之星
日期:2015-12-02 14:59:01数据库技术版块每日发帖之星
日期:2015-12-15 06:20:00
6 [报告]
发表于 2006-07-17 13:21 |只看该作者
除第1行外 没有出现:符号的都过滤掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP