PHP filemtime导致页面为空

时间:2013-10-29 16:25:58

标签: php

之前我运行过这个类似的函数,但在我的新服务器上(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显示出来。

3 个答案:

答案 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)

奇怪......回声“工作”应该打印。当它不打印时通常是因为某处有致命的东西。在glob或filemmtime上推荐。无论如何我总是使用ini_set('display_errors','1'); '1'不是1.