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這些對中文支持不怎么好,所以大家盡量使用英文。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM