我需要在一个目录中获取多个文件的内容,但这是最好的方法吗?
我在用
$data = file_get_contents('./files/myfile.txt');
但我想要每个文件,而不必像上面那样单独指定文件。
我需要在一个目录中获取多个文件的内容,但这是最好的方法吗?
我在用
$data = file_get_contents('./files/myfile.txt');
但我想要每个文件,而不必像上面那样单独指定文件。
您可以 dir 目录并循环访问它以获取所有文件的内容。
<?php
$path = './files';
$d = dir($path);
$contents = '';
while (false !== ($entry = $d->read())) {
if (!($entry == '..' || $entry == '.')) {
$contents .= file_get_contents($path.'/'.$entry);
}
}
$d->close();
?>
如果您只想要 .txt 文件,您可以更改上面代码的 if 语句:
if (!($entry == '..' || $entry == '.')) {
至:
if (substr($entry, -4) == '.txt') {
这将产生一个变量 $contents ,它是字符串类型,并且包含 ./files 目录中的所有文件(或者只有 txt 文件,如果您选择第二种解决方案)的所有内容。
/**
* Change the path to your folder.
* This must be the full path from the root of your
* web space. If you're not sure what it is, ask your host.
*
* Name this file index.php and place in the directory.
*/
// Define the full path to your folder from root
$path = "/home/content/s/h/a/shaileshr21/html/download";
// Open the folder
$dir_handle = @opendir($path) or die("Unable to open $path");
// Loop through the files
while ($file = readdir($dir_handle)) {
$data = file_get_contents('$filet');
}
// Close
closedir($dir_handle);
您可以使用glob
来获取特定的文件扩展名并file_get_contents
获取内容
$content = implode(array_map(function ($v) {
return file_get_contents($v);
}, glob(__DIR__ . "/files/*.txt")));