以下のような感じでしょうか。


関数dhhmmssは表示用に使っているだけです。

<?php
function dhhmmss($t) {
$d = (int)($t / (24 * 60 * 60));
$h = (int)(($t - $d * 24 * 60 * 60) / (60 * 60));
$m = (int)(($t - $d * 24 * 60 * 60 - $h * 60 * 60) / 60);
$s = (int)(($t - $d * 24 * 60 * 60 - $h * 60 * 60) - $m * 60);
return sprintf('%04d-%02d:%02d:%02d', $d, $h, $m, $s);
}

function difmtime($path, $level=3) {
$now = time();
$mtime = filemtime($path);
$dtime = $now - $mtime;
if (0 < $level--) {
foreach (glob($path . "/*") as $file) {
if (is_dir($file)) {
$subtime = dirmtime($file, $level);
if ($dtime > $subtime) {
$dtime = $subtime;
// printf("(%02d) %s %s<br />\n", $level, dhhmmss($dtime), $file);
}
}
}
}
return $dtime;
}

$dtime = fidmtime(最初のディレクトリ);
echo '最新のものは ' . dhhmmss($dtime);
?>

のコードサンプルで、Fatal error: Call to undefined function: fidmtime() in /.../index.php on line 46

と言われました。どうしたらよいでしょうか

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/04/10 20:43:44
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Bombastus No.1

回答回数409ベストアンサー獲得回数52

ポイント27pt

下記が間違っているようです。

(誤)$dtime = fidmtime(最初のディレクトリ);

  ↓

(正)$dtime = difmtime(最初のディレクトリ);

id:GreenStar No.2

回答回数192ベストアンサー獲得回数46

ポイント27pt

$dtime = fidmtime(最初のディレクトリ);

下のように変更。

$dtime = difmtime(最初のディレクトリ);
id:taramonera No.3

回答回数79ベストアンサー獲得回数5

ポイント26pt

fidmtime()という関数は定義されていないため、エラーになっています。


$dtime = fidmtime(最初のディレクトリ);

$dtime = difmtime(最初のディレクトリ);

ではないでしょうか?

id:webster2

the latest 0075-11:09:02 とでました。どういうことを意味しているのでしょうか。

2010/04/09 21:58:11
  • id:webster2
    これがコードです。

    <?php
    function dhhmmss($t) {
    $d = (int)($t / (24 * 60 * 60));
    $h = (int)(($t - $d * 24 * 60 * 60) / (60 * 60));
    $m = (int)(($t - $d * 24 * 60 * 60 - $h * 60 * 60) / 60);
    $s = (int)(($t - $d * 24 * 60 * 60 - $h * 60 * 60) - $m * 60);
    return sprintf('%04d-%02d:%02d:%02d', $d, $h, $m, $s);
    }

    function dirmtime($path, $level=3)
    {
    $mtime = filemtime($path);
    if (0 < $level--) {
    foreach (glob($path."/*") as $file) {
    if (is_dir($file)) {
    $subtime = dirmtime($file, $level);
    if ($mtime < $subtime) {
    $mtime = $subtime;
    // echo $level.' '.$file.' '.date(DATE_RFC822, $mtime)."<br>";
    } } } }
    return $mtime;
    }

    function difmtime($path, $level=3) {
    $now = time();
    $mtime = filemtime($path);
    $dtime = $now - $mtime;
    if (0 < $level--) {
    foreach (glob($path . "/*") as $file) {
    if (is_dir($file)) {
    $subtime = dirmtime($file, $level);
    if ($dtime > $subtime) {
    $dtime = $subtime;
    // printf("(%02d) %s %s<br />\n", $level, dhhmmss($dtime), $file);
    }
    }
    }
    }
    return $dtime;
    }

    $dtime = difmtime("P");
    echo 'the latest ' . dhhmmss($dtime);


    ?>

    ディレクトリは

    Aの下にA1,A2,A3,...となります。PにはAを書くのでしょうか、それともA1?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません