PHP 文件使用正则表达式获取内容

PHP File get content with regex

我想用特定的正则表达式打开 PHP 中的文件。这是例子。我在同一文件夹中有两个文件:

20151001_Test(132489488)_test_summary.txt

20150930_Test(132489488)_test.txt

这两个文件在同一个文件夹中,开头的数字(20151001)正在变化。但我想找到第二个文件,只有第一个文件的编号(132489488)。类似于:

$number = preg_replace('/20151001_Test\((.*)\)_test_summary.txt/','',$line);
$file = file_get_content('/.*_Test(' . $number . ')_test.txt/');

也许有人知道答案?

非常感谢!

您需要先获取文件名列表,然后才能找到要使用的文件。

像这样

$dir = '/your/directory/here/';
$number = preg_replace('/20151001_Test\((.*)\)_test_summary.txt/','',$line);
$files = scandir($dir);
$matching = preg_grep('/_Test(' . $number . ')_test.txt/');
if ($matching) {
    $file = file_get_content($matching[0]);
}

您不能在 file_get_content() 中使用正则表达式参数;它需要一个固定的字符串文件名。

如果要搜索与模式匹配的文件,则首先需要从目录中读取文件名列表。您将为此使用 scandir()

然后您需要搜索结果数组以找到匹配的文件名。 PHP 函数是 preg_grep()。这是一个正则表达式函数,您可以在这里使用您的正则表达式。

使用上述方法找到匹配的文件名后,然后您可以将该文件名传递给 file_get_contents() 以加载文件。