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


PHP File get content with regex

我希望在PHP中打开一个具有特定正则表达式的文件。下面是一个例子。我有两个文件在同一个文件夹:

20151001 _t (132489488) _testrongummary.txt

20150930 _t (132489488) _test.txt

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

$number = preg_replace('/20151001_Test'((.*)')_test_summary.txt/','$1',$line);
$file = file_get_content('/.*_Test(' . $number . ')_test.txt/');
也许有人知道答案了?

非常感谢!

您需要在找到要使用的文件名之前获取文件名列表。

像这样

$dir = '/your/directory/here/';
$number = preg_replace('/20151001_Test'((.*)')_test_summary.txt/','$1',$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()加载文件。