解析php file_exists無效的解決辦法

來源:互聯網
上載者:User

方法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特殊設定所保護的檔案在引用(include和require)時不必加上$_server['document_root']路徑,因為,根據php說明文檔,它們是允許引用的。

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.