方法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/* 解決了問題。
解析php file_exists無效的解決辦法
2020-04-30 10:18PHP教程網 PHP教程
本篇文章是對php中file_exists無效的解決辦法進行了詳細的分析介紹,需要的朋友參考下
延伸 · 閱讀
- 2022-03-10簡單談談centos7中配置php
- 2022-03-06Ubuntu14.04服務器環境下配置PHP7.0+Apache2+Mysql5.7的方
- 2022-03-05centos yum php 7.x 無需刪除升級的方法
- 2022-03-05Centos7下PHP安裝gd庫的實例講解
- 2022-03-03linux環境下安裝PHP的OpenSSL擴展的方法講解
- 2022-02-27CentOS 7.x編譯安裝Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4
- PHP教程
PHP之使用swoole統計在線人數和ID案例講解
這篇文章主要介紹了PHP之使用swoole統計在線人數和ID案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參...
- PHP教程
PHP基于php_imagick_st-Q8.dll實現JPG合成GIF圖片的方法
這篇文章主要介紹了PHP基于php_imagick_st-Q8.dll實現JPG合成GIF圖片的方法,需要的朋友可以參考下 ...
- PHP教程
PHP設計模式之迭代器模式Iterator實例分析【對象行為型】
這篇文章主要介紹了PHP設計模式之迭代器模式Iterator,結合實例形式分析了PHP迭代器模式Iterator相關概念、原理、實現方法與操作注意事項,需要的朋友可以參...
- PHP教程
PHP中使用匿名函數操作數據庫的例子
這篇文章主要介紹了PHP中使用匿名函數操作數據庫的例子,本文直接給出類的代碼、使用例子、繼承例子,需要的朋友可以參考下...
- PHP教程
PHP里8個鮮為人知的安全函數分析
這篇文章主要介紹了PHP里8個鮮為人知的安全函數,較為詳細的分析了addslashes、htmlentities、htmlspecialchars及md5等函數在PHP程序設計安全中所起到重要作用,非常...
- PHP教程
eclipse php wamp配置教程
這篇文章主要為大家詳細介紹了eclipse php wamp配置教程,極其簡單的php入門教程,感興趣的小伙伴們可以參考一下...
- PHP教程
php 數組元素快速去重
本篇文章主要介紹了php數組元素快速去重的方法,具有很好的參考價值。下面跟著小編一起來看下吧...
- PHP教程
Laravel框架使用Redis的方法詳解
這篇文章主要介紹了Laravel框架使用Redis的方法,結合實例形式較為詳細的分析了Laravel框架中Redis數據庫配置、使用方法及相關操作注意事項,需要的朋友可以...