方法 據官方手冊上描述若php教程的safe mode相關的設置過於苛刻就會出現這樣的情形盡管文件真實存在也被誤報認為文件不存在
由 於服務器端的phpini我們無法操縱當用ini_set()也關閉不了safe mode模式我們只有退而求其次找一個更可靠安全的檢測方法來檢測文件是否存在我們可以借助 $_server[document_root] 來加以實現$_server[document_root] 返回的是網站的根目錄該目錄的最後一個子目錄不包含目錄標志符號“/”如
d:/www/htdocs
有了根目錄再加上需要檢測的文件的路徑我們將得到一個絕對的路徑php就可以順利使用file_exists()函數對之進行檢測上述代碼我們只需要更改第一行為(注意我們在configphp之前加上了符號“/”)
$file=$_server[document_root]"/configphp";
如此代碼的執行就很可信不會出現預期以外的結果
以上方法同樣適用於目錄(is_dir())或文件(is_file())的相關檢測函數能夠檢測出被安全保護的目錄或文件是否存在
最後順便提一下這類被php特殊設置所保護的文件在引用(include和require)時不必加上$_server[document_root]路徑因為根據php說明文檔它們是允許引用的
方法本人的情況是因為文件在windows和linux之間來回的移動造成linux下文件和目錄的訪問權限被改變導致出文件除擁有者外其他均無訪問權限使用chmod r xxx/* 解決了問題
From:http://tw.wingwit.com/Article/program/PHP/201311/21048.html