0

以前は完全に機能していたコードで奇妙なエラーが発生しましたが、突然エラーが発生し始めました...

それが関連するコードです:

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;
}

私が得ているエラーは次のとおりです。

致命的なエラー: cmp() (以前に /store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized.php:3 で宣言) を /store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized で再宣言できません8 行目の .php

エラーに記載されているように、上記のコードは 3 行目から始まりますが、8 行目は "}" だけです。

前述のように、コードは以前は機能していましたが、変更されておらず、数か月後に機能しなくなりました。サーバーの設定の問題でしょうか?何か案は?

ありがとう!S.

アップデート:

ごめんなさい。クライアントが私のコードを台無しにしていたことに気付きました。私は人々が知識を持たずに物事を直そうとし、それを台無しにすると助けを求めて泣くのが嫌いです.

お時間を無駄にして申し訳ありません、ご容赦ください。

4

4 に答える 4

2

このファイルを 2 回インクルードしたようです。/からrequire()/に切り替えるだけです。include()require_once()include_once()

于 2012-06-30T23:01:38.760 に答える
1

cmp() 関数を 2 回 (またはそれ以上) 定義しています。このコードを複数回含めた可能性があります...

于 2012-06-30T23:00:27.477 に答える
1

他のファイルで使用requireしていて、すでに cmp 関数が存在している可能性があります

于 2012-06-30T23:01:04.007 に答える
1

考えられる唯一の説明は、同じファイルを複数回インクルードしているということです。include または require を include_once および require_once に変更します。

于 2012-06-30T23:01:36.947 に答える