Php 按上次修改日期对文件排序,获取文件名(不是绝对路径)

Php 按上次修改日期对文件排序,获取文件名(不是绝对路径),php,Php,我想从目录中获取所有文件名,并按上次修改日期排序。 我在谷歌上搜索了很多答案,所以我从中选了一个 我可以得到正确的文件名 来自“天生的失败者”的想法 <?php $files = array(); $dir = getcwd(); $dir = dirname($dir); //get Parent directory $dir .= "/XMLdata/*.xml"; $files = glob($dir); usort($files, function($a, $b) {

我想从目录中获取所有文件名,并按上次修改日期排序。 我在谷歌上搜索了很多答案,所以我从中选了一个

我可以得到正确的文件名

来自“天生的失败者”的想法

<?php
$files = array();
$dir = getcwd();
$dir = dirname($dir);  //get Parent directory
$dir .= "/XMLdata/*.xml";

$files = glob($dir);
usort($files, function($a, $b) {
    return filemtime($b) < filemtime($a);
});
foreach($files as &$value)
{
     $value = substr($value,strrpos($value,'/')+1);
}
    header('Content-type: application/json');
    echo json_encode($files);
?>


对不起-是的,数组$files将在目录中包含文件名。/

for ($i = 0; $i < sizeof($files); $i++) {
    echo $files[$i];
} 
for($i=0;$i
将返回所有文件名-您只需在排序时使用filemtime函数即可

(这是关于你链接到的问题的第一个答案)

何必费心。。 我就是这么做的:

$i = strrpos($_SERVER['PHP_SELF'],'/');
define('URLBASE',   substr($_SERVER['PHP_SELF'],0,$i+1));
如果您可以确定找到“/”:

$sFile = substr($sPath,strrpos($sPath,'/')+1);

是的,我从那里得到了答案,因为我说我可以使用如下函数:array=path.split(“/”);数组[array.length-1];获取文件名,但我认为这不是一个好方法抱歉-是的,数组$files将在目录中包含文件名。/谢谢,实际上,我尝试了第一个,但没有得到结果。我认为在ksort之后,我们可以得到按日期排序的数组,谢谢,但是我不知道如何添加代码行。在处理每个绝对路径之后,我可以得到正确的文件名。谢谢,我使用foreach($files as&$value){$value=substr($value,strrpos($value,'/')+1);}。太好了:-)我还不知道foreach语句中引用的诀窍。谢谢:-)
$i = strrpos($_SERVER['PHP_SELF'],'/');
define('URLBASE',   substr($_SERVER['PHP_SELF'],0,$i+1));
$sFile = substr($sPath,strrpos($sPath,'/')+1);