2

我需要打开一个我知道目录路径但不知道全名的 .txt 文件。我只知道一些独特的数字,它们是其名称的一部分。

我已经检查了 PHP.net 和谷歌一点,但没有发现任何有用的东西。

在您看来,是否有可能采取一些措施来实现这一目标?

例如:我有这些作为文件名一部分的唯一编号(“9129129”),并且我知道存储此文件和其他文件的目录的路径(“/Home/Library/ApplicationSupport/project”)。该文件本身是一个 .txt,可能类似于“xyz124124 fbqwf9129129 fwehbj$124.txt”。

4

3 回答 3

3

您可以使用该glob函数对带有一些子字符串的 .txt 文件进行匹配:

$substring = "9129129";
$path      = '/Home/Library/ApplicationSupport/project/';

list($name) = glob(sprintf("$path*%d*.txt", $substring), GLOB_NOSORT) + array(NULL);
if ($name) {
    $file = fopen($path . $name, "r");
    // Do something with `$file`        
}
于 2013-09-03T16:00:05.133 回答
1

您在这里不需要正则表达式,只需要普通的glob()函数,您可以在其中提供搜索模式:

$files = glob('/Home/Library/ApplicationSupport/project/*9129129*.txt');
print_r( $files ); # or foreach $files array and do your magic
于 2013-09-03T16:06:50.363 回答
-3
^[a-zA-Z0-9-_\.]+\.(txt)$ should work
于 2013-09-03T16:03:05.223 回答