早上在提取网页标题的过程时,里用正则表达式:/<title>(*.)<\/title>/,可是一直匹配不中,试试/<p>(.*)<\/p>/也不行。
难度正则表达式中出现<就识别不了吗,不知道哪个地方出问题了。

解决方案 »

  1.   

    /<title>(.*)<\/title>/s  //写反了
      

  2.   

    可以匹配<>的
    *.换成.*贴示例代码、数据   
      

  3.   


    $text = "<title>你好</title>";
    preg_match_all("/<title>(.*)<\/title>/i", $text, $result);
    var_dump($re);
    array(2) {
      [0]=>
      array(1) {
        [0]=>
        string(21) "<title>你好</title>"
      }
      [1]=>
      array(1) {
        [0]=>
        string(6) "你好"
      }
    }
      

  4.   


    我也用这个例子,打印出来的是NULL.奇怪了
      

  5.   

    preg_match_all("/<title>(.*)<\/title>/i", $text, $result);
    var_dump($result);
    我这儿写错了,忘了一起改了
      

  6.   

    呵呵。我也大意了。改完后确实可以匹配出来。
    这就表明这条规则的是可以用的。
    我想抓取的标题的url:collection.sina.com.cn/zwyp/20120425/134765376.shtml
    我自己试是不行的。
      

  7.   

    <?php
    $content = file_get_contents('http://collection.sina.com.cn/zwyp/20120425/134765376.shtml');preg_match_all("/<title>(.*)<\/title>/i", $content, $re);
    // 这个网页它的编码是gb2312, 你得转换为你网页所用的语言。我的是UTF-8
    $gb_title = $re[1][0];
    $result = iconv('gb2312', 'UTF-8', $gb_title);
    var_dump($result);
    string(72) "清明上河图大邮票惊艳亮相_中外邮票_新浪收藏_新浪网"