質問: phpの質問です。 $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" ```