我需要获取目录中几个文件的内容,但这是最好的方法吗?
我正在使用
$data = file_get_contents('./files/myfile.txt');
但我希望每个文件都不必像上面那样单独指定文件。
答案 0 :(得分:1)
/**
* 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);
答案 1 :(得分:1)
您可以在目录中输入并循环浏览它以获取所有文件的内容。
<?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文件)。
答案 2 :(得分:1)
您可以使用glob
获取特定文件扩展名,使用file_get_contents
获取内容
$content = implode(array_map(function ($v) {
return file_get_contents($v);
}, glob(__DIR__ . "/files/*.txt")));