检索目录PHP中的几个文件的内容

时间:2013-04-24 12:14:20

标签: php directory file-get-contents

我需要获取目录中几个文件的内容,但这是最好的方法吗?

我正在使用

$data = file_get_contents('./files/myfile.txt');

但我希望每个文件都不必像上面那样单独指定文件。

3 个答案:

答案 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")));