php“;是“u dir”;Intranet站点的文件列表
我正在创建一个测试文件,以获取位于intranet文件夹中的所有文件,并简单地在根据扩展名列出的文件旁边放置一个图标图像。 出于某种原因,代码不能正确地执行操作 这是目录中文件的windows资源管理器视图的屏幕截图 这是我的代码: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(
<?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语句之前。然后开关将用扩展图像覆盖图像。如果您仍然有问题,请编辑您的问题,并将更新的代码与问题一起发布。