所以我在我的电影目录的页面中列出项目,只要没有子目录就好了。php is_dir有时候不会工作
该页面可以在这里查看。 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标记的回显行,并且它显示了完整的路径和它的绝对权限。
我已经尝试将is_dir更改为!is_file,这允许它列出文件夹,但它也列出了我不想显示的文件,因为它绕过了我的ext过滤器(我想我可以将过滤器添加到此但is_dir应该工作吗?)。
所以基本上我需要一些帮助才能得到这个工作。我疯了,不明白is_dir还是有更好的方法?
如果有人想看看我正在使用的JavaScript来隐藏嵌套列表,如果已经显示,请随意。我觉得这是一个非常“黑客”的做法,但即时通讯仍然非常新,不知道很多技巧。它在jQuery的AJAX部分dirList.js
顺便说一句,请确保您使用HTML5兼容的浏览器,因为我正在使用一些其他HTML5的东西之间的视频标签。我正在使用chrome进行开发。
谢谢。
编辑问另一种相关的问题。
我使用CSS模拟了视频标签的全屏模式,除了它仍然显示右侧的滚动条,以及它在真正黑暗的场景中变得烦人之外,它的效果很好。有没有什么办法摆脱这个。即使我在浏览器中处于全屏模式,它也会持续(f11)。浏览器是Chrome浏览器,我将z-index设置为10,没有其他设置。
编辑:
我被做$( '身体')的CSS摆脱滚动条的( '溢出', '隐藏');作为我的全屏功能的一部分,并在切换回来时关闭它。
is_dir will fai l在类似于:C:\ wamp \ www \ hmvc \ resources \ lang \ es-ar(或nix equiv。) - 注意在es-ar中的连字符 – Jeffz 2012-05-18 17:49:10