php - 在文件名旁边添加图标
问题描述
我有以下代码对当前目录中的文件进行排序:
<?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?
干杯。
解决方案
在你的线路之后
$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
所有三种情况
推荐阅读
- php - Laravel 查询生成器 addSelect whereRaw 条件显示错误
- pdf - 如何删除PDF的一部分?
- docker - 如何使用 docker-compose 下载私有图像(本地)
- matlab - Matlab SOCP不打印最优解
- python - 如何点击href链接?
- python - 如何在 OpenCV 中以椭圆形式捕获图像?
- python - 子字符串python列表中的唯一值
- dart - 飞镖中将消除未使用的覆盖?
- vuetify.js - Vuetify 选择在项目前面追加缩进
- ms-wopi - 使用 WOPI 协议的 web 方法是否必须在 office 中使用 office 在线帐户登录