问题如题,先上html文件,需要取里面的body内容,直接上代码:
你好你好
接着是php代码:
(.*)<\/body>/', $file, $res);
return $res;
}
运行之后发现:
array(0) { }
如果里面的方法改为:
function get_body_from_html($filename)
{
if (!file_exists($filename)) {
return false;
}
// $file = file_get_contents($filename);
$file = '你好 >我不好我不好
';
$res = array();
preg_match('/(.*)<\/body>/', $file, $res);
return $res;
}
运行之后就可以正确输出:
array(2) {
[0]=>
string(42) "我不好我不好
"
[1]=>
string(29) "我不好我不好
"
}
所以要请教一下为何写的正则抓不到内容呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把正则里面的
改成
因为‘.’只能匹配所有非空字符(
更正:点只能匹配除换行符rn之外的所有字符,而不是非空字符),而换行符,缩进,空格等空字符是匹配不到的