我希望在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()
加载文件。