首页 > 解决方案 > 在文件名旁边添加图标

问题描述

我有以下代码对当前目录中的文件进行排序:

<?php
$folders = array_filter(glob('*'), 'is_dir');

foreach ($folders as $foldlist) {

echo "<tr><td><img src=\"/index/RESSOURCES/icon/folder.png\"></td><td><a href=\"{$foldlist}\">{$foldlist}</a></td><td><a href=\"#info\" onclick=\"loadDoc('{$foldlist}')\"><img src=\"/RESSOURCES/icon/info.png\"></a></td></tr>";
}
$files = glob("*.*");

foreach ($files as $filename) {
$type=substr($filename,strrpos($filename,'.')+1);
echo "<tr><td><img src=\"/index/RESSOURCES/icon/{$type}.png\"></td><td><a href=\"{$filename}\">{$filename}</a></td><td><a href=\"#info\" onclick=\"loadDoc('{$filename}')\"><img src=\"/RESSOURCES/icon/info.png\"></a></td></tr>";
}

?>

它有效,不用担心。最近几天我一直在解决一个小问题:

如果你运行我的代码,你会看到每个文件名之前都有一个图标。它通过采用文件的格式来获取正确的图标。很酷,对吧?

但这是我的问题:假设我有两个文件:dummy.zip 和 dummy.tar。

这两个文件都将获取“zip.png”和“tar.png”——这两个图标完全相同。所以基本上,我让客户端加载两次相同的图标,女巫使我的页面显着变慢。没什么戏剧性的?好吧,我现在有一百多个文件……女巫几乎所有文件都有不同的格式。

我怎样才能做到这一点:如果 $icon == zip OR tar OR gz LOAD zip.png?

干杯。

标签: phphtml

解决方案


在你的线路之后

$type = substr($filename,strrpos($filename,'.')+1);

和之前

echo "<tr><td><img src=\"/index/RESSOURCES/icon/{$type}.png\"></td><td><a href=\"{$filename}\">{$filename}</a></td><td><a href=\"#info\" onclick=\"loadDoc('{$filename}')\"><img src=\"/RESSOURCES/icon/info.png\"></a></td></tr>";

您可以添加以下代码

if($type == 'zip' || $type == 'tar' || $type == 'gz') {
    $type = 'zip';
}

它将加载zip.png所有三种情况


推荐阅读