0

フォルダー内からファイル情報を取得する際に問題が発生しています。

もちろん、私はPHPを使用しています。さまざまなフォルダーがあり、すべてさまざまなファイルの種類があります。ほとんどの .txt および .html ファイル。

以下のコードは、Web ページのフォルダーとファイルを表示しますが、何らかの理由で、正しいファイルの日付またはサイズを取得できません。ファイルの日付はもちろん、フォルダー内の変更された日付です。これらのファイルは通常、別の場所からコピー アンド ペーストされます。バッチ ファイルを使用して、ファイルをディレクトリに自動的にドロップする予定です。

私が使用しているコードは次のとおりです。

 <?php
   function listFolderFiles($dir)
        {
            $ffs = scandir($dir);
            echo '<ul>';
            foreach($ffs as $ff)
            {
                if($ff != '.' && $ff != '..')
                {
                    echo '<li>';
                    if(is_dir($dir.'/'.$ff))
                    {
                        echo $ff;
                        listFolderFiles($dir.'/'.$ff);
                    } 
                    else 
                    {
                        echo "<a href='$dir/$ff'>$ff</a> - Last Updated: " . 
                        date('F d, Y h:i', filectime($ff)) . " - Size " . filesize($ff);
                        echo "<br />";
                    }
                    echo '</li>';
                }
            }
            echo '</ul>';
        }
    listFolderFiles('exportReports');
 ?>

コードからわかるように、PHP 関数 filectime を使用しました。filemtime も使用しました。関数 filectime は現在の日付を返しているようですが、filemtime は 1969 年 12 月 31 日の日付を返します。

ファイルは正しいディレクトリにあります。ページにファイルを表示でき、ユーザーがファイルをダウンロードできる場合、変更日を取得できないのはなぜですか? PHP がファイルを見つけられない場合、1969 年の日付が返されることを理解しています。しかし、それは意味がありません。ファイルは取得できるのに、更新日を取得できないのはなぜですか?

ここに一重引用符と二重引用符を入れてみました:

 date('F d, Y h:i', filectime("$ff")) or date('F d, Y h:i', filectime('$ff'))

それでも、1969 年の日付はわかります。

私は他の多くのPHP関数を試しました。stat()、touch()、getlastmod()。私は他に何を使うべきではありません。

ファイルサイズ関数と同じこと。値 0 を返します。

理解できない。

代替手段はありますか?私はこれを間違って使用していますか?もしそうなら、これを修正するにはどうすればよいですか?

助けてください。

4

0 に答える 0