我想获取包含字符串的文件的文件名(在特定文件夹中)。
例如:有一个名为" test"的文件夹。在这个文件夹中有三个文件,但只有一个包含字符串" hello"。现在我想用PHP取回这个文件的名称。
(所有文件都是.txt)
提前致谢!
答案 0 :(得分:3)
答案 1 :(得分:3)
假设有* nix环境
以下内容将生成一个$output
变量,其中包含一个文件名为
$output = exec("grep -l 'hello' test/*.txt");
答案 2 :(得分:1)
尚未对其进行测试,但以下内容应该有效:
$data = glob(FOLDER . "*.txt");
// filter
$filter = array();
// read contents of all files
for($i=0; $i<count($data); $i++) {
$file_path = $data[$i];
// open file in read-only mode
$fp = fopen( $file, 'r' );
// read file data
$file_data = fread($fp, filesize($file_path));
// close file handle
fclose($fp);
// make sure we catch CR-only line endings.
$file_data = str_replace("\r", "\n", $file_data);
// match using regexp
if(preg_match('/(hello world)/im', $file_data)) {
$file_name = basename($data[$i]);
array_push($filter, $file_name);
}
}
// output filtered file names
echo nl2br(print_r($filter, TRUE));