Re: [請益] filectime()想要取得檔案修改時間失敗
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
151
156