作者wzbird (大鸟)
看板PHP
标题Re: [请益] filectime()想要取得档案修改时间失败
时间Mon Aug 8 22:46:07 2011
※ 引述《Jerr (身为老爸老妈噜..)》之铭言:
: 可能因为 web server 执行的process uid
: 跟你执行shell script的process uid不同
: 可以透过 ls -l /mnt/data/testlogs/Testlog/454112
: 确认一下web server的uid对这个档案是否可读
hi 感谢回应
我刚刚乱试了一下, 结果有出来了
结果还是出在用php呼叫shell script那行
1. $OLDEST_DIR=`ls /mnt/data/testlogs/Testlog/ -tr | head -n1`;
失败
2. $OLDEST_DIR=shell_exec('ls /mnt/data/testlogs/Testlog/ -tr | head -n1');
失败
3. $OLDEST_DIR=exec('ls /mnt/data/testlogs/Testlog/ -tr | head -n1');
成功!
真傻眼
详细再追一下这三个动作有什麽差别
: ※ 引述《wzbird (大鸟)》之铭言:
: : hi 大家
: : 我想要取得某一个资料夹中, 最旧的资料夹的时间, 我这样写
: : #=============================================================
: : $OLDEST_DIR=`ls /mnt/data/testlogs/Testlog/ -tr | head -n1`;
: : #取得最旧的资料夹, 这段是shell script
: : $P="/mnt/data/testlogs/Testlog/".$OLDEST_DIR;
: : $d=filectime($P);
: : echo date("Ymd",$d);
: : #=============================================================
: : 结果输出是
: : PHP Warning: filectime(): stat failed for /mnt/data/testlogs/Testlog/454112
: : in /var/www/html/sh.php on line 9
: : 19700101
: : 结果不对还有一个Warning
: : 可是我如果不用$OLDEST_DIR
: : #=============================================================
: : $P="/mnt/data/testlogs/Testlog/454112";
: : $d=filectime($P);
: : echo date("Ymd",$d);
: : #=============================================================
: : 直接指定一个路径给他, 这样结果就正常
: : 可是我的那段shell script跑出来的$OLDEST_DIR也是454112阿
: : 为什麽带成变数就有问题呢?
: : 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.46.75