Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 打开文件目录的问题_Php_File_Directory - Fatal编程技术网

Php 打开文件目录的问题

Php 打开文件目录的问题,php,file,directory,Php,File,Directory,我遇到了一些应该做一些事情的代码问题。首先,它应该扫描一些文件路径以获得所有目录。然后,它应该遍历目录,如果目录包含一个图像文件,即jpeg,因为只有jpeg可以上传到任何给定的文件夹,那么该目录将在表中打印出来。如果目录不包含图像,则不会打印出目录。注意,我要打印的目录只包含图像。错误一定是在我挑选文件的过程中发生的,也就是说,我使用了原生php目录函数。但我不确定我到底是如何滥用它们的。以下是相关代码: public function FilesAsDir ($filepath) {

我遇到了一些应该做一些事情的代码问题。首先,它应该扫描一些文件路径以获得所有目录。然后,它应该遍历目录,如果目录包含一个图像文件,即jpeg,因为只有jpeg可以上传到任何给定的文件夹,那么该目录将在表中打印出来。如果目录不包含图像,则不会打印出目录。注意,我要打印的目录只包含图像。错误一定是在我挑选文件的过程中发生的,也就是说,我使用了原生php目录函数。但我不确定我到底是如何滥用它们的。以下是相关代码:

public function FilesAsDir ($filepath) {
    $files = array(); 
    $files = scandir($filepath);
    $j = 1; //init j value  
    $inc = 1; //init inc value
    echo "<table id='overflow' class='overflowClass'><tr>"; //init table
    foreach ($files as $handle) {
        $open = opendir($handle); 
        $read = readdir($open); 
        if (imagecreatefromjpeg($read)) {
        echo "<td id='loadTable" . $inc . "'><h1 id='handle " . $j . "'>$handle</h1><span id='options" . $inc . "'></span></td>"; 
            if (($j % 6) == 0 ){ 
                echo "</tr><tr>"; 
            }//end $j mod 6 if
        }//end imagecreate if
        else {
            echo "<td id='loadTable" . $inc . "'><h1 id='handle " . $j . "'>error</h1><span id='options" . $inc . "'></span></td>"; 
        }//end else
        $j ++; 
        $inc++;
        }//end foreach
    echo "</table>"; //close the table
}//end FilesAsDirectory

如果在1行之后覆盖$files,那么初始化$files到数组有什么用?如果$j和$inc始终保持相同的价值,那么拥有$j和$inc有什么用?注意:您并没有结束最后一个循环,也要注意:在您的案例中,readdir没有在循环中使用。因此,在您的案例中,它总是只返回每个目录的第一个文件。这很可能永远是。或您需要继续执行readdir,直到扫描了该目录中的所有文件。您可以使用:while false!==$entry=readdir$handleI不理解为什么我需要一个循环来遍历readdir,因为我正在给它提供的参数已经来自foreach循环,所以我已经在遍历目录中的所有文件,一次遍历一个。我错了吗?