Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-glob()排序在主机';s服务器_Php_Sorting_Directory_Glob - Fatal编程技术网

PHP-glob()排序在主机';s服务器

PHP-glob()排序在主机';s服务器,php,sorting,directory,glob,Php,Sorting,Directory,Glob,尽管这段代码对文件名进行排序,然后在本地对扩展名进行完美排序,但我无法在任何托管公司的(共享)服务器上实现这一点,无论PHP版本如何。它根本不会在主机的服务器上进行任何排序。我已经在许多不同的托管公司的服务器上尝试过。因此,这不是一个托管公司/服务器的问题。(*仅供参考:最早测试的PHP版本是5.2.17,最近测试的是5.3.26。Local=5.3.5) 输出示例: a_first.jpg a_first.png a_first.zip b_second.doc b_second.gif b_

尽管这段代码对文件名进行排序,然后在本地对扩展名进行完美排序,但我无法在任何托管公司的(共享)服务器上实现这一点,无论PHP版本如何。它根本不会在主机的服务器上进行任何排序。我已经在许多不同的托管公司的服务器上尝试过。因此,这不是一个托管公司/服务器的问题。(*仅供参考:最早测试的PHP版本是5.2.17,最近测试的是5.3.26。Local=5.3.5)

输出示例:
a_first.jpg
a_first.png
a_first.zip
b_second.doc
b_second.gif
b_second.jpg

<?php

function getFileExt($filename) {
    return substr(strrchr($filename,'.'),1);
}

$handle=opendir(dirname(__FILE__));

while (($file = readdir($handle))!==false) {
    $fileExt = strtolower(getFileExt($file));
    if(in_array($file, $ignore_file_list)) { continue; }
    if(in_array($fileExt, $ignore_ext_list)) { continue; }
    if(is_dir($file)) { $fileExt = "dir"; }

    /* SORT FILES - First by filename and then by extension */
    $files = glob($handle."/*.*");
    $files = array_map("basename", $files);

    natcasesort($files);

    echo '
<div><a href='.$file.' class='.$fileExt.'>&nbsp;</a></div>
<div><a href='.$file.'>$file</a></div>
';
}

closedir($handle);

?>

有关更多信息,请参阅此帖子:

为什么要将句柄传递给
glob
?请参阅此帖子:-这将为您提供有关此问题的见解。我也试过“dirname(_; FILE __;)”-运气不好。@mar2195:这可能对你有帮助