2017-02-14 87 views
0

我想獲取文件修改或創建與PHP的日期。要做到這一點,我使用filectime功能,但它給我總是出現以下錯誤:警告:filectime():統計失敗的路徑

Warning: filectime(): stat failed for path

其中路徑是在我所存儲的文件的路徑。

的途徑是與此類似:

http://MYIP/documents/animals document 1.pdf 
http://MYIP/documents/animals document 2.pdf 
... 

,我不得不更換URL編纂該文件的空間:

$path= str_replace(' ', '%20', $path); 

如果我這樣做,我可以用一個鏈接在我的瀏覽器上打開這個文件,但是如果我嘗試在filectime函數上使用相同的路徑,它會顯示我之前提出的警告。

我錯過了什麼嗎?

在此先感謝!

+0

http://php.net/manual/en/wrappers.http.php:「支持stat():否」_ - 您無法將其用於HTTP URL。 – CBroe

+1

_「我試圖獲取文件被修改或創建的日期,PHP」_ - 所以使用文件系統路徑,而不是HTTP URL。 – CBroe

回答

1

filectime函數需要一個字符串路徑作爲參數。這只是一個包裝功能,使用Posix stat系統調用。

系統調用:

int stat(const char *pathname, struct stat *buf);

所以,需要一個參數,就好像它在你的文件系統。該URL被編碼爲在服務器端具有整潔的無空白標識符以執行適當的腳本。

不要打擾那「編纂」!只需使用標準的字符串路徑,就像在UNIX shell上使用的那樣,相對於腳本目錄。

在這種情況下,只需提供正確的PHP函數路徑!

filectime("documents/animals document 2.pdf"); 
+1

_「您需要在路徑中的空白處使用轉義序列」_ - 不是,不是在文件系統中。 – CBroe

+0

@CBroe啊!是的,你是對的!感謝您的更正!我仍然在UNIX shell的環境中輸入該句子...:P – varun

+0

@varun但IP是我的,但外部,所以我不得不通過路徑訪問該文件:'IP/animals/animals document 2.pdf '。 –

相關問題