Php 正则表达式不匹配?编码问题?

Php 正则表达式不匹配?编码问题?,php,regex,encoding,utf-8,Php,Regex,Encoding,Utf 8,奇怪的问题 我有这个文档,当我复制文本并将其放在脚本中(作为字符串变量)时,正则表达式匹配成功。但是,当我使用file_get_内容(从internet)访问文档时,它不会 这与编码有关吗?该文件为ISO-8859-1,但通过utf8\U编码转换为utf8 请注意,字符串变量是从这个utf8编码的输出创建的 它也是一个简单的正则表达式: if (preg_match_all('/<h3 align=center><A NAME="([^"]*)"><\/A>(

奇怪的问题

我有这个文档,当我复制文本并将其放在脚本中(作为字符串变量)时,正则表达式匹配成功。但是,当我使用file_get_内容(从internet)访问文档时,它不会

这与编码有关吗?该文件为ISO-8859-1,但通过utf8\U编码转换为utf8

请注意,字符串变量是从这个utf8编码的输出创建的

它也是一个简单的正则表达式:

if (preg_match_all('/<h3 align=center><A NAME="([^"]*)"><\/A>(.*)<\/h3>(.*)::break::/isUu', $contents, $matches, PREG_SET_ORDER)) {

if(preg_match_all)('/这不是由于编码,而是由于达到了回溯限制

使用以下内容覆盖设置:

 ini_set('pcre.backtrack_limit', '1000000');

(从10万增加到10万)修复了这个问题。PHP 5.3。?也有这个值,所以它不仅仅是一个非常大的数字。

对复制/粘贴变量执行var\u转储,然后从文件中获取内容,检查是否有任何差异。用browser/wget打开文件并查看其编码。可能,它会以
utf-8
的形式返回,但您可以手动将其保存在中<代码>iso拉丁语-1