-rw-r--r-- 1 ****** *** 0 Sep 19 14:29 1111111111_5555555_10999
-rw-r--r-- 1 ****** *** 0 Sep 19 14:29 2222222222_6666666_10998
-rw-r--r-- 1 ****** *** 0 Sep 19 13:32 3333333333_5555555_10999
PHPで、以下のようにすると、
$file_name_csv = 1111111111_5555555_10999;
echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n";
実行結果:
1111111111_5555555_10999 last modified: January 01 1970 09:00:00.
となってしまいます。
これをファイル更新の時間、Sep 19 14:29という値を代入することは
可能なのでしょうか?
date
http://jp.php.net/manual/ja/function.date.php
表示したいのが
Sep 19 14:29の場合
M d H:s
※:lsの結果だと思いますが、システムにより表示される
内容は違います。 去年のファイルだと年が入ったりします。
例えば、存在しないファイル名をfilemtime関数に渡すと戻り値がfalseとなり、結果、質問文の場合だとdate関数はJanuary 01 1970 09:00:00を返します。
filemtime関数に渡している$file_name_csvには正しいファイル名が代入されていますか?(例えば、phpスクリプトとデータファイルは同じディレクトリにありますか? また質問文のスクリプト1行目の右辺がクォートで囲まれていませんが、実際のスクリプトではちゃんと囲まれていますか?)
$file_name_csv = 1111111111_5555555_10999;
echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n";
とりあえず、
$file_name_csv = 1111111111_5555555_10999; if (file_exists($file_name_csv)) { echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n"; } else { echo "File not found.\n"; }
のようにして試してみることをお勧めします。
ところで、
$file_name_csv = 1111111111_5555555_10999;
ほんとにこのコードで動きましたか?
私の環境では
$file_name_csv = "1111111111_5555555_10999";
としないと Parse Error になったんですけど……
実行結果からさっしてパスが通っていないと思います。
PHPのファイルと1111111111_5555555_10999などを同じディレクトリーで
実行してみて下さい。
>>ファイルの作成日時を取得したいのですが、
ファイルの作成日時はfilectimeだと思うのですがPHP マニュアルによれば
『いくつかのUNIXでは、ファイルのctimeはファイルの作成時間として参照 されます。これは間違っています。多くのUNIXファイルシステムでは UNIXファイルの作成時間は存在しません。』
ということらしいです。
ファイル更新の時間を代入するのでは
bool touch ( string filename [, int time [, int atime]] )
が使えます。
がパーミッションが644なのでこの状態では更新できないと思いますが
コメント(0件)