Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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“;是“u dir”;Intranet站点的文件列表_Php_Directory_Intranet - Fatal编程技术网

php“;是“u dir”;Intranet站点的文件列表

php“;是“u dir”;Intranet站点的文件列表,php,directory,intranet,Php,Directory,Intranet,我正在创建一个测试文件,以获取位于intranet文件夹中的所有文件,并简单地在根据扩展名列出的文件旁边放置一个图标图像。 出于某种原因,代码不能正确地执行操作 这是目录中文件的windows资源管理器视图的屏幕截图 这是我的代码: <?php $dir="file:///.....to_my_directory"; // Directory where files are stored if ($dir_list = opendir($dir)) { while(

我正在创建一个测试文件,以获取位于intranet文件夹中的所有文件,并简单地在根据扩展名列出的文件旁边放置一个图标图像。 出于某种原因,代码不能正确地执行操作

这是目录中文件的windows资源管理器视图的屏幕截图

这是我的代码:

<?php

  $dir="file:///.....to_my_directory"; // Directory where files are stored

  if ($dir_list = opendir($dir)) {
     while(($filename = readdir($dir_list)) != false) {

        if (is_dir($filename)) {
      $img = 'folder_img.jpg';
    } else {

      $filestuff = pathinfo($filename);
      $file_ext = isset($filestuff['extension']) ? $filestuff['extension'] : null;
      switch($file_ext) {
        case 'pdf':
        $img = 'pdf_img.jpg';
        break;

        case 'doc' || 'docx' || 'docm' || 'dotm' || 'dotx':
        $img = 'word_img.jpg';
        break;

        case 'xls' || 'xlsm' || 'xltx' || 'xlam' || 'xlsx' || 'xlm' || 'xlt' || 'xlsb':
        $img = 'excel_img.jpg';
        break;

        case 'txt':
        $img = 'txt_file_img.jpg';
        break;

        case NULL:
        $img = 'blank_file_img.jpg';
        break;
      }
   }



?>
<p><span><img src='<?php echo $img; ?>' height='23px;'/><a href="<?php echo $filename; ?>"><?php echo $filename;?></a></span></p>


<?php
  }
    closedir($dir_list);
  }

?>

“height='23px;”/>

这就是我运行它时的外观:

问题是某些未列出的扩展正在拖动“Microsoft WORD”图标

扩展名为“.mdb”的“Access数据库”文件正在拖动Word图标,扩展名为“.mdb_hcu”的文件也在拖动Word图标

<>我如何使它成为空白文件选项(见我的开关情况,答案是null)< /p> 此外,我如何组织,使文件夹列在第一位,一切都是按字母顺序


有没有一个插件可以让我更轻松地实现这一点?

您能将
大小写空:
更改为
默认值:
并查看它是否有效吗

default:
意味着如果它与任何“案例”都不匹配,那么它将运行默认案例

谢谢

:编辑答案:

您需要更改设置位置,
$img='folder\u img.jpg'
,因为它设置为word,然后在下一个'while',它不是dir,所以不会更改,但也不匹配任何大小写,所以保持上次
while
时的状态-希望这有意义

让我知道它是否适合你

<?php

    $dir="."; // Directory where files are stored

    if ($dir_list = opendir($dir)) {
        while(($filename = readdir($dir_list)) != false) {
            $img = 'folder_img.jpg';
            if (!is_dir($filename)) {
                $filestuff = pathinfo($filename);
                $file_ext = isset($filestuff['extension']) ? $filestuff['extension'] : null;
                switch($file_ext) {
                    case 'pdf':
                        $img = 'pdf_img.jpg';
                    break;

                    case 'doc':
                    case 'docx':
                    case 'docm':
                    case 'dotm':
                    case  'dotx':
                        $img = 'word_img.jpg';
                    break;

                    case 'xls':
                    case 'xlsm':
                    case 'xltx':
                    case 'xlam':
                    case 'xlsx':
                    case 'xlm':
                    case 'xlt':
                    case 'xlsb':
                        $img = 'excel_img.jpg';
                    break;

                    case 'txt':
                        $img = 'txt_file_img.jpg';
                    break;

                    default:
                        $img = 'blank_file_img.jpg';
                    break;
                }
            }
?>
<p><span><img src='<?php echo $img; ?>' height='23px;'/><a href="<?php echo $filename; ?>"><?php echo $filename;?></a></span></p>


<?php
        }
    closedir($dir_list);
    }
?>

“height='23px;”/>


能否将
大小写空:
更改为
默认值:
并查看它是否有效

default:
意味着如果它与任何“案例”都不匹配,那么它将运行默认案例

谢谢

:编辑答案:

您需要更改设置位置,
$img='folder\u img.jpg'
,因为它设置为word,然后在下一个'while',它不是dir,所以不会更改,但也不匹配任何大小写,所以保持上次
while
时的状态-希望这有意义

让我知道它是否适合你

<?php

    $dir="."; // Directory where files are stored

    if ($dir_list = opendir($dir)) {
        while(($filename = readdir($dir_list)) != false) {
            $img = 'folder_img.jpg';
            if (!is_dir($filename)) {
                $filestuff = pathinfo($filename);
                $file_ext = isset($filestuff['extension']) ? $filestuff['extension'] : null;
                switch($file_ext) {
                    case 'pdf':
                        $img = 'pdf_img.jpg';
                    break;

                    case 'doc':
                    case 'docx':
                    case 'docm':
                    case 'dotm':
                    case  'dotx':
                        $img = 'word_img.jpg';
                    break;

                    case 'xls':
                    case 'xlsm':
                    case 'xltx':
                    case 'xlam':
                    case 'xlsx':
                    case 'xlm':
                    case 'xlt':
                    case 'xlsb':
                        $img = 'excel_img.jpg';
                    break;

                    case 'txt':
                        $img = 'txt_file_img.jpg';
                    break;

                    default:
                        $img = 'blank_file_img.jpg';
                    break;
                }
            }
?>
<p><span><img src='<?php echo $img; ?>' height='23px;'/><a href="<?php echo $filename; ?>"><?php echo $filename;?></a></span></p>


<?php
        }
    closedir($dir_list);
    }
?>

“height='23px;”/>


问题是您不能像这样列出大小写值:

case 'doc' || 'docx' || 'docm' || 'dotm' || 'dotx':
这将作为一条语句进行计算,该语句将计算为true。然后,扩展将与该结果进行比较,除非扩展为
NULL
,否则情况将为真

您需要列出每个案例选项,如下所示:

case 'doc':    //if
case 'docx':   //any
case 'docm':   //of
case 'dotm':   //these
case 'dotx':   //are true
               //this will run
    //set image
    break;     //up to this

如果其中任何一个案例为真(等于扩展名),案例中的代码将一直运行,直到点击
中断。

问题是您不能像这样列出案例值:

case 'doc' || 'docx' || 'docm' || 'dotm' || 'dotx':
这将作为一条语句进行计算,该语句将计算为true。然后,扩展将与该结果进行比较,除非扩展为
NULL
,否则情况将为真

您需要列出每个案例选项,如下所示:

case 'doc':    //if
case 'docx':   //any
case 'docm':   //of
case 'dotm':   //these
case 'dotx':   //are true
               //this will run
    //set image
    break;     //up to this

如果任何一个案例为真(等于扩展名),案例中的代码将一直运行,直到点击
中断

这是一个很好的尝试。但是它没有将“文件夹”图标放在我的文件夹旁边,而是使用默认选项。啊,是的,对不起,看起来Jonathan做对了-错误似乎是switch不支持
|
这是一个很好的尝试。但是它并没有把文件夹图标放在我的文件夹旁边,而是使用了默认选项。啊,是的,抱歉-看起来乔纳森已经把它弄错了。这个错误似乎是开关不支持<代码> >代码>在一种情况下,我怎么表示多个选项?@ BuffMcMe:我正在键入一个例子。好了,太棒了。现在问题发生在它没有拉文件夹旁边的“folder\u img”图标的地方-它使用默认选项。我是否正确设置了“if-else”语句?从我的判断,其他一切都很好。另一个选项是删除
大小写NULL:
(或
默认值:
,以您使用的为准)并设置
$img='blank_file_img.jpg'在switch语句之前。然后开关将用扩展图像覆盖图像。如果你仍然有麻烦,编辑你的问题并把你的更新代码和问题一起发布。那么,在一种情况下,我如何表示多个选项?@ BuffMcMe:我正在键入一个例子。好了,太棒了。现在问题发生在它没有拉文件夹旁边的“folder\u img”图标的地方-它使用默认选项。我是否正确设置了“if-else”语句?从我的判断,其他一切都很好。另一个选项是删除
大小写NULL:
(或
默认值:
,以您使用的为准)并设置
$img='blank_file_img.jpg'在switch语句之前。然后开关将用扩展图像覆盖图像。如果您仍然有问题,请编辑您的问题,并将更新的代码与问题一起发布。