フォルダー内からファイル情報を取得する際に問題が発生しています。
もちろん、私は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 を返します。
理解できない。
代替手段はありますか?私はこれを間違って使用していますか?もしそうなら、これを修正するにはどうすればよいですか?
助けてください。