在线等:如何用PHP程序模仿IE通过表单验证,并取得其后若干页面的内容?(急!) 我都贴了好几次了,上网搜索一下很多,怎么这么懒http://www.tianjiaonet.com/blog.php?aid=7&BlogID=1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to Meteorlet(www.dictworld.com):能否给点解释,我试了N久,都没通过……(主要是我对原理不理解,麻烦说明一下,多谢) 不知道怎么设置。你那个$str = ("username=写用户名?&password=写密码?"); $response = GetWebContent("www.163.com","POST /login.php HTTP/1.0", $str); ??运行,长时间没有反应 期待高人来解决。连续抓取的问题已经困扰我几天了。虽然我已经找到局部的解决方案。然而并不适用所有的web服务器。fgets,fread。 http://community.csdn.net/Expert/topic/4434/4434547.xml?temp=.212414 特别声明:反复请求,请准备驳斥我的朋友仔细看好了,是反复请求,我已经研究几天了。我可以确定以下这个循环不适用反复请求数据的过程,它只能适用你的第一次请求。 while(!feof($fp)) { $response .= fgets($fp, 1024); } 也已经肯定以下这个循环在反复请求中也不行,会fread超时。do { $data = fread($handle, 8192); if (strlen($data) == 0) { break; } $contents .= $data;} while(true); 一、连续抓取确实没能成功,可以再次 fwrite($fp, $buffer),但不能再次读取fread($fp, $buffer),我现在是每次写入、读取之后都用 fclose($fp) 结束一下,然后再用 fsockopen 打开;二、超时问题确实也是很头痛,不过我确实不太明白:无论我是否设置stream_set_timeout()和set_time_limit(),程序最后都会超时,为什么呢?读取部分如下: while (!feof($fp)) { $buffer=fgets($fp, 8192); $contents .= $buffer; }看到网上很多抓取其他网站页面内容的栏目,相信肯定有相应的解决办法,还望各位不吝赐教,谢谢! 那是因为fputs或者fread超时。这个问题可能是网络故障。我推测fread或者fgets或者fputs本身就是如果失败不断重试的过程。所以超时可能是陷入死循环了。这个问题我没有解决。我只解决了后续读取的问题。 to gu1dai(异域苍穹......追夢人) :如果是网络故障当然没办法,但在网络正常的情况下,明明用浏览器可以随时、任意访问,但用PHP 通过fsockopen()连接服务器,去fread就是超时,真是搞不懂! 其实,有时候还是应该推崇拿来主义http://snoopy.sf.net 拿来主义有些道理,snoopy可基本满足需要,正在学习中……两天后结贴,谢谢大家。 ThinkPHP模板输出问题求助 发帖选择字体和颜色怎么实现啊? php中加入的代码不执行??!! 求助 如何在PHP虚拟主机上创建PDF? 公司网站被黑,请教高手? 有这样的sql语法吗?id等于1 2 3,三记录同时存在。 mysql替代like模糊查询的最佳方法?????求赐教!!!! 怎样使用正则表达式的Pattern!?? 静态url,用正则获取URL参数进行路由好还是htacess重写好? 求教数字随机排列不重复的问题 PHP里统计乍赋值呢? 请问如何使用PHP往windows中添加用户。
能否给点解释,我试了N久,都没通过……(主要是我对原理不理解,麻烦说明一下,多谢)
$str = ("username=写用户名?&password=写密码?");
$response = GetWebContent("www.163.com","POST /login.php HTTP/1.0", $str); ??运行,长时间没有反应
fgets,fread。
while(!feof($fp))
{
$response .= fgets($fp, 1024);
} 也已经肯定以下这个循环在反复请求中也不行,会fread超时。
do {
$data = fread($handle, 8192);
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
读取部分如下: while (!feof($fp))
{
$buffer=fgets($fp, 8192);
$contents .= $buffer;
}看到网上很多抓取其他网站页面内容的栏目,相信肯定有相应的解决办法,还望各位不吝赐教,谢谢!
这个问题可能是网络故障。我推测fread或者fgets或者fputs本身就是如果失败不断重试的过程。所以超时可能是陷入死循环了。这个问题我没有解决。我只解决了后续读取的问题。
如果是网络故障当然没办法,但在网络正常的情况下,明明用浏览器可以随时、任意访问,但用PHP 通过fsockopen()连接服务器,去fread就是超时,真是搞不懂!
http://snoopy.sf.net