我注意到安装其中一个PHP脚本的目录有非常大的error_log文件,大小只有1GB大小,大多数错误都是通过478和479行编码生成的.. error_log文件中的错误示例如下:
PHP Warning: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for /home/khan/public_html/folder/ZBall.jar in /home/khan/public_html/folder/index.php on line 478
PHP Warning: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for /home/khan/public_html/folder/ZBall.jar in /home/khan/public_html/folder/index.php on line 479
我有以下编码,第477到484行
foreach ($mp3s as $gftkey => $gftrow) {
$ftimes[$gftkey] = array(filemtime($thecurrentdir.$gftrow),$gftrow);
$ftimes2[$gftkey] = filemtime($thecurrentdir.$gftrow);
}
array_multisort($ftimes2,SORT_DESC,$ftimes);
foreach ($ftimes as $readd) {
$newmp3s[] = $readd[1];
}
请帮我解决这个问题。
谢谢.. :))
答案 0 :(得分:2)
stat failed
错误表示文件/home/khan/public_html/games/ZBall.jar
不存在,或者由于权限错误而无法读取。确保文件存在于PHP正在查找的位置,因为这似乎是问题的最原因。
由于它来自数组$mp3s
,请确保该数组包含存在的文件的名称,如果不存在则修改它。
答案 1 :(得分:1)
在用它做某事之前询问该文件。检查我的编辑:
<?php
foreach ($mp3s as $gftkey => $gftrow) {
if (file_exists($thecurrentdir.$gftrow)) {
$ftimes[$gftkey] = array(filemtime($thecurrentdir.$gftrow),$gftrow);
$ftimes2[$gftkey] = filemtime($thecurrentdir.$gftrow);
}
}
array_multisort($ftimes2,SORT_DESC,$ftimes);
foreach ($ftimes as $readd) {
$newmp3s[] = $readd[1];
}
答案 2 :(得分:0)
PHP.net网站上有一个功能可以删除Windows上有关filemtime
function GetCorrectMTime($filePath) {
$time = filemtime($filePath);
$isDST = (date('I', $time) == 1);
$systemDST = (date('I') == 1);
$adjustment = 0;
if($isDST == false && $systemDST == true)
$adjustment = 3600;
else if($isDST == true && $systemDST == false)
$adjustment = -3600;
else
$adjustment = 0;
return ($time + $adjustment);
}
来源:http://php.net/manual/tr/function.filemtime.php#100692