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 它有效
我尝试使用 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 它有效