php中判斷文件是否存在我們會使用file_exists函數或is_file函數,但在使用file_exists時如果你文件名或路徑是中文在uft8編碼文檔時是無效。本文就來解決此問題,下面我們一起來看看。
定義和用法:
file_exists() 函數檢查文件或目錄是否存在。
如果指定的文件或目錄存在則返回 true,否則返回 false。
例子1
<?php echo file_exists("test.txt"); ?>
輸出:
1
例子2
$realname='中文.txt'; if(file_exists($realname)) { // 永遠都進不了這里 } else { echo 'www.jb51.net 提醒你文件不存在了'; }
輸出結果是 www.jb51.net 提醒你文件不存在了
但我很驚訝呀文件是存在了,並且路徑也沒有問題php文件與中文.txt在同一目錄所以這樣寫是沒有問題,於時想想會不會是中文問題,我對編碼進行轉換
解決方案:
$realname='中文.txt'; if(file_exists(iconv('UTF-8','GB2312',$realname))) { // 這樣就可以支持了 }
結果顯示1 ,問題解決了
此外還需要提醒大家,在php中最好不要使用中文名字,像apache,linux,php這些對中文支持不怎么好,所以大家盡量使用英文。