我最近开始为我的服务器开发一个PHP文件管理器,因为我认为它非常容易使用,并且允许我学习我的PHP技能。不管怎样,我有几个问题我希望能被回答.
这是我目前的密码..。
<?php
global $dir_path;
if (isset($_GET["directory"])) {
$dir_path = $_GET["directory"];
//echo $dir_path;
}
else {
$dir_path = $_SERVER["DOCUMENT_ROOT"]."/";
}
$directories = scandir($dir_path);
foreach($directories as $entry) {
if(is_dir($dir_path . "/" . $entry )) {
echo "<a href=?directory=" . $dir_path . "" . $entry . "/" . "><li>" . $entry . "</li></a>";
}
else {}
}?>
非常感谢你的帮助,布兰登
“点”与我服务器的ext4文件系统有关吗?这与我的问题并没有多大关系,我只是有点好奇。
发布于 2013-09-21 22:32:06
如果你只想要一个简单的版本:
foreach($directories as $entry) {
if (is_dir($dir_path . "/" . $entry) && !in_array($entry, array('.','..'))) {
echo "<a href=?directory=" . $dir_path . "" . $entry . "/" . "><li>" . $entry . "</li></a>";
}
else {}
}这将检查. / .. (如当前dir和back )。关于空间这听起来很奇怪。是链接不起作用,还是扫描?如果是链接,将空格替换为%20,例如
$href="?directory=" . $dir_path . "" . str_replace(' ','%20',$entry) . "/";
echo "<a href='".$href.'"><li>' . $entry . '</li></a>';我认为更有可能的原因是在href附近缺少""的引号,例如
echo '<a href="?directory="' . $dir_path . $entry . '/' . '"><li>' . $entry . '</li></a>';而不是。当您不添加quoutes时,带有空白的链接(例如"test 123“)将被浏览器解释为href=test,因为没有任何东西可以封装整个链接。应该是href="test 123"。
https://stackoverflow.com/questions/18938226
复制相似问题