PHP preg_match 与 file_get_contents 空数组匹配

PHP preg_match with file_get_contents empty array match

我尝试使用 preg_match

提取数据
<?php
$HTML   = '#a#TEXT#a#';
$REGEX  = '/#a#(.*?)#a#/';

preg_match($REGEX, $HTML, $MATCH);

print_r($MATCH);
var_dump($MATCH);
?>

这很好用。 但是,如果我从 file_get_contents

的文件中尝试相同的操作

这是输入文件file.php: #a#TEXT#a#

<?php

$HTML   = file_get_contents("file.php");
$REGEX  = '/#a#(.*?)#a#/';

preg_match($REGEX, $HTML, $MATCH);

print_r($MATCH);
var_dump($MATCH);
?>

数组 $MATCH 为空我的错误在哪里?

如果文件是这样的: #a#TEXT#a# 行得通!

但是如果文件是多行的(有中断),就像那样::

#a#

TEXT

#a#

没用。我该如何解决?

您确定文件被正确读取了吗? 试试 var_dump($HTML);加载文件后。如果为 False,则无法读取文件

这是帮助我跨多行匹配任何字符的正则表达式:

$REGEX = '/#a#(.*?)#a#/s';

我在我的正则表达式上放了一个 s 它有效