我正在使用PHP中的
在shell中运行该命令:
请注意: - 当我通过cli运行PHP脚本时,问题不会出现(只有在通过apache运行时才会出现)。 - 我检查了页面的源代码,以确保我看到的是我得到的内容(我确实得到了月份名称而不是正确的日期)。 - 我还以
更新答案:
然而,在PHP中使用
exec()
命令来执行ls
命令,但是与在shell中运行相比,我得到了不同的输出。通过PHP运行ls
命令时,日期的年份和月份会被更改为月份名称。在shell中运行该命令:
$ ls -lh /path/to/file
-rw-r--r-- 1 sysadmin sysadmin 36M 2011-05-18 13:25 file
通过PHP运行命令:
<?php
exec("ls -lh /path/to/file", $output);
print_r($output);
/*
Array
(
[0] => -rw-r--r-- 1 sysadmin sysadmin 36M May 18 13:25 file
)
*/
请注意: - 当我通过cli运行PHP脚本时,问题不会出现(只有在通过apache运行时才会出现)。 - 我检查了页面的源代码,以确保我看到的是我得到的内容(我确实得到了月份名称而不是正确的日期)。 - 我还以
www-data
用户身份通过shell运行ls
命令,以查看ls
是否根据用户提供不同的输出(从shell中始终获得相同的输出,即我获得的是yyyy-mm-dd格式的日期而不是月份名称)。更新答案:
alias
给了我这个结果:alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
从这些别名中,我无法找到直接负责时间显示的开关:
-C list entries by columns
-F append indicator (one of */=>@|) to entries
-A do not list implied . and ..
-a do not ignore entries starting with .
-l use a long listing format
然而,在PHP中使用
--time-style=long-iso
确实解决了这个问题。