首頁  >  文章  >  後端開發  >  php file_exists()函數沒有效果是因為什麼?

php file_exists()函數沒有效果是因為什麼?

怪我咯
怪我咯原創
2017-07-11 10:54:342710瀏覽

file_exists — 檢查檔案或目錄是否存在,若指定的檔案或目錄存在則傳回 TRUE ,否則傳回 FALSE 。 這篇文章是對php中file_exists無效的解決方法進行了詳細的分析介紹,需要的朋友參考下

方法1 :根據官方手冊上描述若php教學的safe mode相關的設定過於苛刻,就會出現這樣的情形:儘管檔案真實存在也被誤報,認為文件不存在。

由於伺服器端的php.ini我們無法操縱,當用ini_set()也關閉不了safe mode模式,我們只有退而求其次,找一個更可靠、安全的檢測方法來檢測文件是否存在。我們可以藉助 $_server['document_root'] 來加以實作。 $_server['document_root'] 傳回的是網站的根目錄,該目錄的最後一個子目錄不包含目錄標誌符號“/”,如:
d:/www/htdocs
#有了根目錄,再加上需要偵測的檔案的路徑,我們將得到一個絕對的路徑,php就可以順利使用file_exists()函數來偵測。上述程式碼我們只需要更改第一個行為(注意,我們在config.php之前加上了符號“/”):
$file=$_server['document_root']."/config.php" ;
如此,程式碼的執行就很可信,不會出現預期以外的結果。
以上方法同樣適用於目錄(is_dir())或檔案(is_file())的相關偵測函數,能夠偵測出被安全保護的目錄或檔案是否存在。

最後順便提一下:這類被php特殊設定所保護的檔案在引用(includerequire)時不必加上$_server['document_root' ]路徑,因為,根據php說明文檔,它們是允許引用的。

方法2:本人的情況是因為檔案在windows和linux之間來回的移動。造成linux下檔案和目錄的存取權限被改變,導致出檔案除擁有者外其他均無存取權限。使用chmod -r 755 xxx/* 解決了問題。

以上是php file_exists()函數沒有效果是因為什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn