之前我运行过这个类似的函数,但在我的新服务器上(PHP 5)filemtime
似乎不起作用。
我尝试过这个小脚本,页面返回空白。什么都没有出现,甚至没有显示出来的文字。它必须是PHP内部的东西,但似乎无法确定它。任何帮助表示赞赏。
ini_set('display_errors',1);
error_reporting(E_ALL);
$images = glob("source_images/*.jpg");
usort($images, function($a, $b) {
return filemtime($a) < filemtime($b);
});
echo "worked";
以上只是代码的一部分,但我认为失败发生在filemtime
,因为在上面,我没有让echo worked
显示出来。
答案 0 :(得分:1)
嗯,这是因为你没有输出任何东西。 usort()
会根据文件修改日期对$images
数组进行排序,但要显示结果,您必须使用循环:
foreach ($images as $image) {
echo $image.PHP_EOL;
}
<强>更新强>
目前还不清楚您使用的是哪个版本的PHP,但我认为这可能是因为您的服务器不支持匿名功能。匿名函数仅在PHP 5.4之后可用。因此,如果您尝试在以前的PHP版本上使用它,它将无法工作。
升级到支持匿名函数的PHP版本,或者单独编写函数,如下所示:
function timesort($a, $b) {
return filemtime($a) < filemtime($b);
}
usort($images, 'timesort');
答案 1 :(得分:0)
问题在于使用不在PHP 5.1中的lambda函数
答案 2 :(得分:0)