恳请哪位高手露两手帮看看俺的代码有什么问题!<?php
//error_reporting(E_ALL & ~E_NOTICE);
$dir='aaaa';//获取根目录
$handle=opendir($dir."."); //打开目录
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$data= file_get_contents($dir.'/'.$file);
//$pattern="/ .*>(.*?)<o:p><\/o:p><\/span><\/b><\/p>\r\n(.*)<\/td>\r\n(.*)<\/tr>\r\n(.*)<\/table>\r\n/";
$pattern="/ .*>(.*?)<o:p><\/o:p><\/span><\/b>/";
preg_match($pattern,$data,$result);
print_r( $file);
print_r($result[1])."<br/>";
}
}
closedir($handle); //关闭打开的目录
?>
下面是被读取的文件的源代码。 <p class=MsoNormal style='mso-pagination:widow-orphan'><b style='mso-bidi-font-weight:
normal'><span lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:宋体;
mso-bidi-font-family:宋体;color:black;mso-font-kerning:0pt'>35<o:p></o:p></span></b></p>
</td>
</tr>
</table>
我只想读取数字35.请问我的正则表达式正确吗?应该怎么写?为什么运行时老提示“Notice: Undefined offset: 1 in D:\htdocs\dfb\ex.php on line 14”。
//error_reporting(E_ALL & ~E_NOTICE);
$dir='aaaa';//获取根目录
$handle=opendir($dir."."); //打开目录
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$data= file_get_contents($dir.'/'.$file);
//$pattern="/ .*>(.*?)<o:p><\/o:p><\/span><\/b><\/p>\r\n(.*)<\/td>\r\n(.*)<\/tr>\r\n(.*)<\/table>\r\n/";
$pattern="/ .*>(.*?)<o:p><\/o:p><\/span><\/b>/";
preg_match($pattern,$data,$result);
print_r( $file);
print_r($result[1])."<br/>";
}
}
closedir($handle); //关闭打开的目录
?>
下面是被读取的文件的源代码。 <p class=MsoNormal style='mso-pagination:widow-orphan'><b style='mso-bidi-font-weight:
normal'><span lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:宋体;
mso-bidi-font-family:宋体;color:black;mso-font-kerning:0pt'>35<o:p></o:p></span></b></p>
</td>
</tr>
</table>
我只想读取数字35.请问我的正则表达式正确吗?应该怎么写?为什么运行时老提示“Notice: Undefined offset: 1 in D:\htdocs\dfb\ex.php on line 14”。
<p class=MsoNormal style='mso-pagination:widow-orphan'><b style='mso-bidi-font-weight:
normal'><span lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:宋体;
mso-bidi-font-family:宋体;color:black;mso-font-kerning:0pt'>35<o:p></o:p></span></b></p>
TXT;
$pattern="/ .*>(.*?)<o:p><\/o:p><\/span><\/b>/";
preg_match($pattern,$data,$result);
print_r($result[1])."<br/>";
35代码本身没错
但你是在遍历目录中的每一个文件,不能保证每个文件里都有符合条件的内容吧?
print_r( $file);
print_r($result[1])."<br/>";这了写作
if(preg_match($pattern,$data,$result)) {
print_r( $file);
print_r($result[1])."<br/>";
}