php 小偷程序,preg_match正则翻译标签,请大家帮忙。

1$ref="http://tq121.weather.com.cn/icbc/detail.php";2$fp=fopen($ref,'r');3if($fp){4$c... 1 $ref="http://tq121.weather.com.cn/icbc/detail.php"; 2 $fp=fopen($ref,'r'); 3 if($fp){ 4 $contes=file_get_contents($ref); 5 6 7 if (preg_match('/<img src=\"images/20080821.gif\" width=\"480\" height=\"55\" border=\"0\"></a></td>(.*)<td width=\"21\" valign=\"top\"> </td>/',$contes,$reg)) { print_r($reg); $regs[1]=str_replace("src=\"../images/","src=\"http://weather.tq121.com.cn/images/",$regs[1]); echo $regs[1]; } else echo '出错了'; } else echo '没有读到文件'; 刚开始报错: Warning: preg_match() [function.preg-match]: Unknown modifier '2' in D:\Program Files\Zend\Apache2\htdocs\PHP100\thiefProgram\newfile.php on line 7 出错了 修改成这样了 if (preg_match('/<img src=\"images\/20080821.gif\" width=\"480\" height=\"55\" border=\"0\"><\/a><\/td>(.*)<td width=\"21\" valign=\"top\"> <\/td>/',$contes,$reg)) { 报错: array(); 展开
 我来答
百度网友a5fcb3ef4
2012-02-12 · 超过83用户采纳过TA的回答
知道小有建树答主
回答量:170
采纳率:100%
帮助的人:231万
展开全部
“出错了” 说明没偷到数据,
用这个应该不报错了
if (preg_match('/<img src="images\/20080821.gif" width="480" height="55" border="0"><\/a><\/td>(.*)<td width="21" valign="top"> <\/td>/',$contes,$reg)) {
照此正则表达式去匹配那个网址也是偷不到数据的。
可能原因:http://tq121.weather.com.cn/icbc/detail.php 的HTML结构已经更新了
追问
你好,我已经试了好几个网站,它们都是:数据多了,就报错,如果数据不多,就没事。如:
www.baidu.com
preg_match('/(.*)/i',$contens,$reg)
结果 $reg[1]="百度一下,你就知道";

这是为什么呢?
追答
网速是一个因素,
还有你的这个'/(.*)/i'正则的效率也不是很高,造成回朔太多,会花上几倍的时间来处理匹配。
像(.*) 贪婪型的正则,你一定要考虑正则的效率。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式