关于PHP 获取信息问题
<?php<br /> $baidu="http://www.baidu.com/s?wd=site%3Ahao123.com";<br /> $site=file_get_contents($baidu);<br /> $site= iconv("UTF-8","GB2312", $site);<br /> ereg("<title>(.*)</title>", $site,$count);<br />print_r($count); //获取好主题在百度中的收录数量<br /><br />?>
这个能获得结果:Array ( [0] => [1] => 百度搜索_site:hao123.com )
但是:
<?php<br /> $baidu="http://www.baidu.com/s?wd=site%3Ahao123.com";<br /> $site=file_get_contents($baidu);<br /> $site= iconv("UTF-8","GB2312", $site);<br /> ereg("<strong>(.*)</strong>", $site,$count);<br />print_r($count); //获取好主题在百度中的收录数量<br /><br />?>
这个就不行了。。。
求解释,还有怎么获得百度收录量。。。。
——最佳解决方案——————–
<br />preg_match('%<strong>找到相关结果数(.*?)个。</strong>%i', $site,$count);<br />
——其他解决方案——————–
<br />正则里面的"."匹配除"\n"外的任意一个字符,不能匹配中文。<br />preg_match('%<strong>找到相关结果数(.*?)个。</strong>%i', $site,$count);<br />和下面的一样:<br />preg_match('/<strong>找到相关结果数(.*?)个。</strong>/i', $site,$count);<br />
——其他解决方案——————–
其实这种
preg_match('/<strong>找到相关结果数(.*)个。<\/strong>/i',$site,$count);
就可以了。
——其他解决方案——————–
%找到相关结果数(.*?)个。%i关键是最后的那个“i”表示忽略大小写,如果不加“i”也就不需要“%”了
——其他解决方案——————–
你讲的是位置匹配,跟我讲的不是一件事情
——其他解决方案——————–
%只是正则的开始与结束符,你用/,#都可以的
——其他解决方案——————–
正则的开始和结束不是^$第一次听说,受教……
——其他解决方案——————–
学习了,不上很明白。。
——其他解决方案——————–
上面写错了,”.”可以匹配中文
——其他解决方案——————–
这个问题主要把正则运用好,就可以出来了.
——其他解决方案——————–
能告诉我为什么要加%吗?
——其他解决方案——————–
该回复于2012-11-19 17:27:11被管理员删除