本文實例講述了PHP中file_exists()判斷中文文件名無效的解決方法。分享給大家供大家參考。具體方法如下:
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這些對中文支持不怎麼好,所以大家盡量使用英文。
希望本文所述對大家的PHP程序設計有所幫助。