我想从目录中获取所有文件名,并按上次修改日期排序。 我用Google搜索并获得了很多答案,因此我从sort files by date in PHP
中选择了一个<?php
$files = array();
$dir = getcwd();
$dir = dirname($dir); //get Parent directory
$dir .= "/XMLdata/*.xml";
$files = glob($dir);
usort($files, function($a, $b) {
return filemtime($a) < filemtime($b);
});
header('Content-type: application/json');
echo json_encode($files);
?>
从上面的代码中,我可以从XMLdata目录中获取所有xml文件,但是,从结果$ files。我得到了所有文件,但是使用绝对路径,即&#34; c:\ wamp \ www / XMLdata / xxxx.xml&#34;,我只想要文件xxxx.xml。 我可以在javascript使用正则表达式处理它,但我认为必须有一个更好的方法来获取文件名。任何人都可以帮助我,谢谢。
如果没有好办法,我可以使用
str = result[numberIndex];//one of absolute path from php
var array = str.split("/");
str = array[array.length - 1];
我可以获得正确的文件名。
来自@born loser的想法<?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);
?>
答案 0 :(得分:1)
为什么要打扰.. 这就是我的所作所为:
$i = strrpos($_SERVER['PHP_SELF'],'/');
define('URLBASE', substr($_SERVER['PHP_SELF'],0,$i+1));
如果您确定可以找到&#39; /&#39;:
$sFile = substr($sPath,strrpos($sPath,'/')+1);
答案 1 :(得分:0)
抱歉 - 是的数组$ files将在目录./
中包含文件名for ($i = 0; $i < sizeof($files); $i++) {
echo $files[$i];
}
将返回所有文件名 - 您只需要在排序时使用filemtime函数
(这是参考您链接的问题中的第一个答案)