一步一步测试
先看看
$line是什么
再print_r($out)看看

解决方案 »

  1.   

    $title=$out[0]改为$title=$out[1][0]就可以了。不过你的写法就不对。如果文件不是非常大,应该一次性读进内存。不然象你这样一次读1024字节,如果<title>正好在1024的分界怎么办?
      

  2.   

    preg_match_all('/<title>(.*)<\/title>/i', $line, $out,PREG_PATTERN_ORDER);而且我注意到你这里好象用了单引号??要知道在php里单引号和双引号的差别是非常大的……- -b自己改回双引号吧。
      

  3.   

    谢谢神仙..
    我输出$line,就是原来文件,没有错误..但:print_r($out);就输出如下:
    Array ( [0] => Array ( ) [1] => Array ( ) ) 
    无论是单引号还是双引号都是这样...我晕了...
    大家试试看
      

  4.   

    1、确认demo.htm确有title标记
    2、确认title标记完整的出现在第n次读取的内容中
    3、确认title标记中没有换行,否则要用 '/<title>(.*)<\/title>/is
      

  5.   

    $file = "<title>nihao</title>";preg_match_all("/<title>(.[^<]+)<\/title>/i", $file, $out,PREG_PATTERN_ORDER);
            $title = $out[0];
    print_R($out);
    echo $title;
      

  6.   

    表达式是没错的,你的fgets可能没有得到数据,我以前也是这样。
    用file_get_contents比这个要好的多。
      

  7.   

    to: xuzuning
    你说的我完全没问题,但还是但不到值.
     
    to: gu1dai(异域苍穹......追夢人) 
    我用你的上面的例子,
    输出如下:
    Array ( [0] => Array ( [0] => ) [1] => Array ( [0] => nihao ) ) Array
      

  8.   

    这是demo.htm的代码:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head><body>
    <p>------------------------------------------</p>
    <table>
      <tr bgcolor="#FFFFFF">
        <td width="30%">AC米兰</td>
        <td width="30%" height="25">国际米兰</td>
        <td width="30%">祖云达斯</td>
      </tr>
      <tr bgcolor="#FFFFFF">
        <td>20.2</td>
        <td height="25">22</td>
        <td>45454</td>
      </tr>
    </table>
    <p>&nbsp; </p>
    </body>
    </html>
      

  9.   

    你的fgets没有得到数据,这是问题所在,难道你没看懂我得到的nihao就是title吗?
      

  10.   

    那怎样输出?
    我:echo $title;
    或echo $out[0];
    的结果都是Array