$test=`ls -l`
で変数に格納される内容が、コンソールで ls -l を実行した場合と異なります。
PHP内でバッククオートで実行した場合:
-rw-r--r-- 1 root root 595365 Jul 8 2011 foolog.dat
コンソールで実行した場合:
-rw-r--r-- 1 root root 595365 2011-07-08 08:20 foolog.dat
なぜタイムスタンプのフォーマットが違うのでしょうか。
また、コンソールでの出力と同じにする方法を教えて下さい。
想像だけど、LC_TIME 環境変数の違いじゃないかな?
コマンドプロンプトで、
% echo $LC_TIME
で出力した値をメモっておいて、php のソースで、
$test=`env LC_TIME=XXX ls -l`
ってすると、どうなる?
XXX は、コマンドプロンプトで表示した LC_TIME の値ね。
LC_ALL や LANG も関係あるかも。
もし、ls が GNU のやつだったら、オプションで時刻の表示形式を変えられます。
ls -l --time-style="+%Y-%m-%d %H:%M"
> % echo $LC_TIME
を実行してみましたが、空で何も表示されませんでした・・・しかし、
> ls -l --time-style="+%Y-%m-%d %H:%M"
をPHP内で実行したところ、欲していた出力が得られて、目的は達成されました。
質問は終了しますが、その LC_TIME というモノについては今後のためにも別途調べます。
ありがとうございました。