<?php
$url="http://www.google.cn/search?hl=zh-CN&source=hp&q=%E5%86%99%E7%9C%9F+site%3Asina.com&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=";
$dd=file_get_contents($url);
preg_match_all('~<p id=resultStats>.*?</div>~',$dd,$a);
print_r($a[0]);
foreach ($a[0] as $k=>$v){
preg_match('~<b>.*?</b>~',$v,$wd);
print_r($wd[0]);
}
?>这个正则表达式通过print_r($a[0])运行的的结果是以下内容:
Array
(
    [0] => <p id=resultStats>&nbsp;在 <b>sina.com</b> 中搜索 <b>写真</b> 获得约 <b>20,400</b> 条结果,以下是第 <b>1</b>-<b>10</b> 条  (用时 <b>0.07</b> 秒)&nbsp;</div>)
我想通过
preg_match('~<b>.*?</b>~',$v,$wd); 获得"20,400" 这个值,但怎么也去不出来,大家帮助我看下preg_match('~<b>.*?</b>~',$v,$wd); 应该怎么改,谢谢!

解决方案 »

  1.   


    <?php
    $url="http://www.google.cn/search?hl=zh-CN&source=hp&q=%E5%86%99%E7%9C%9F+site%3Asina.com&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=";
    $dd=file_get_contents($url);
    preg_match_all('~<p id=resultStats>.*?</div>~im',$dd,$a);
    //print_r($a[0]);
    foreach ($a[0] as $k=>$v){
    preg_match('~<b>[\d,]*</b>~',$v,$wd);
    print_r($wd[0]);
    }
    ?>
    看看是不是 你想要的呢,还刚学正则哈,呵呵
      

  2.   

    问题解决了,我写的这个也能实现
    preg_match('~<b>[0-9,]*?</b>~U',$v,$wd);