php file exists無效解決辦法

2021-09-07 03:54:11 字數 941 閱讀 4961

一:is_file 和 file_exists 的區別:

當檔案存在時:is_file 比 file_exists快了n倍

當檔案不存在時:is_file 比 file_exists慢

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

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

gridview刪除無效

timer控制項是基於windows訊息機制的。樓主也知道這點。啟動timer之後,再以模態形式啟動彈出視窗,應該會阻塞timer的計時 模態對話方塊阻止了使用者對主視窗的操作。但這不是說主視窗就不接收訊息了,主視窗還是接收訊息,它的訊息迴圈還在繼續。只不過是訊息處理有所改變而已。比如你往主視窗上點...

無效使用Null

vb在呼叫sql表中資料的時候有時出現 無效使用null值 錯誤,例如呼叫如圖記錄。就會出現 解決方法一 在匯入前或匯入後通過update 語句將null 值處理一下 文字字段更新為空字串 數值字段更新為 0,時間欄位你可以指定乙個預設值.比如你的資料庫中a表 b欄位含有null值.那麼可以用如下語...

正則匹配無效

今天在做專案後台進行正則匹配提取操作時,怎麼都不能取到值,具體的正規表示式和提出字串截圖如下 上面的正規表示式是沒錯的,可匹配的結果竟是將整個內容都提取出來了,這可不是我想要的結果。改為標準的正規表示式繼續測試如下 測試無結果,行不通。沒法,只好請教高手 正規表示式未識別 修改正規表示式如下,繼續測...