所以我在我的电影目录的页面中列出项目,只要没有子目录,它似乎就可以了。
该页面可以在这里查看。 http://jnks.dyndns.org/dirlist.php
可以从那里获取最相关的代码,直到 XHR 将信息发送到 functions.php 页面。我认为,这一切似乎都很可靠,因为它适用于其中包含文件的文件夹,而没有其他文件夹。
这是functions.php的代码
$exts = array(
'.mp4' => 'Apple Video',
'.m4v' => 'Apple Video',
'.ogg' => 'OGG Vorbis Video',
'.ogv' => 'OGG Vorbis Video',
'.webm' => 'MS Video',
'.avi' => 'MS Video',
'.mkv' => 'Matroska Video',
'.iso' => 'Compressed DVD'
);
if(isset($_POST['dirName'])) {
$arg = $_POST['dirName'];
$dirList = scandir($arg);
echo '<ul>';
foreach($dirList as $dirs){
if($dirs === '.' || $dirs === '..') {continue;} //remove dots
if(is_dir($dirs)){
echo '<li class="lv2" id="'.$arg.'\\'.$dirs.'" onclick="getDirList(this)">'.$dirs.'</li>'; //if dir create new nested list with function to drill down
} else {
$ext = strrchr($dirs,'.');
if($exts[$ext]){
echo '<li class="lv3" id="'.$dirs.'" data-folder="'.$arg.'\\'.$dirs.'" onclick="openFile(this)">'.$dirs.'</li>'; //if files then create new nested list
}
}
}
echo '</ul>';
} else {
echo 'POST variable is not set';
}
似乎 is_dir 不想工作。我已经完成了搜索,其他所有人似乎都在不使用绝对路径方面遇到问题。我知道这不是我的问题,因为我已经打印了 $arg var 以及结束 ul 标记的 echo 行,它显示了一个完整的路径并且它绝对不是权限。
我已经尝试将 is_dir 更改为 !is_file ,这允许它列出文件夹,但它也列出了我不想显示的文件,因为它绕过了我的 ext 过滤器(我想我可以将过滤器添加到这里,但 is_dir 应该可以正常工作吗? )。
所以基本上我需要一些帮助才能让它工作。我疯了,不明白 is_dir 还是有更好的方法?
另外,如果有人想查看我用来隐藏嵌套列表的 JavaScript(如果已经显示),请随意。我觉得这是一种非常“hack”的方式,但我还是很新,不知道很多技巧。它在 dirList.js 的 jQuery AJAX 部分
顺便说一句,请确保您使用与 HTML5 兼容的浏览器,因为我在其他一些 HTML5 内容中使用了视频标签。我在开发这个时正在使用 chrome。
谢谢。
编辑以询问另一种相关问题。
我已经使用 CSS 模拟了视频标签的全屏模式,效果很好,只是它仍然在右侧显示滚动条,并且在非常黑暗的场景中会变得烦人。有什么办法可以摆脱这个。即使我在浏览器中也处于全屏模式(f11),它仍然存在。浏览器又是 Chrome,我将 z-index 设置为 10,没有其他任何设置。
编辑:
我通过 $('body').css('overflow', 'hidden'); 摆脱了滚动条 作为我全屏功能的一部分,并在切换回时将其关闭。