我之前在以前工作完美的代码上遇到了一个奇怪的错误,但突然开始推出错误......
这是重要的代码:
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
function getFileList($dir)
{
// array to hold return value
$retval = array();
// add trailing slash if missing
if(substr($dir, -1) != "/") $dir .= "/";
// open pointer to directory and read list of files
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
// skip hidden files
if($entry[0] == ".") continue;
if(is_dir("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry/",
"type" => filetype("$dir$entry"),
"size" => 0,
"lastmod" => filemtime("$dir$entry")
);
} elseif(is_readable("$dir$entry")) {
$retval[] = array(
"name" => "$dir$entry",
"type" => mime_content_type("$dir$entry"),
"size" => filesize("$dir$entry"),
"lastmod" => filemtime("$dir$entry")
);
}
}
$d->close();
uasort($retval, 'cmp');
return $retval;
}
我得到的错误是:
致命错误:无法在/ store / cpanel / home / martinak / public_html / modules /中重新声明cmp()(之前在/store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized.php:3中声明)第8行的mod_supersized / mod_supersized.php
现在,上面的代码确实从错误中所述的第3行开始,但第8行只包含“}”。
如前所述的代码工作,它没有改变,几个月后就停止了工作。可能是服务器配置问题?有什么想法吗?
谢谢! S上。
更新:
我很抱歉。我刚刚意识到我的客户搞砸了我的代码。我讨厌人们试图在没有知情的情况下解决问题,然后在他们搞砸的时候求救。
我为浪费你的时间而道歉,我希望你能原谅我。
答案 0 :(得分:2)
看起来你已经两次包含这个文件了。只需从require()
/ include()
切换到require_once()
/ include_once()
。
答案 1 :(得分:1)
您正在定义cmp()函数两次(或更多次)。也许你不止一次包括这段代码......
答案 2 :(得分:1)
也许您在其他文件中使用require
并且已经存在cmp函数
答案 3 :(得分:1)
唯一可能的解释是您不止一次地包含同一个文件。将include或require更改为include_once和require_once。