php 中file_exists函數不支援中文名稱的解決方法實例詳解

怪我咯
發布: 2023-03-13 13:50:01
原創
1412 人瀏覽過

file_exists — 檢查檔案或目錄是否存在;語法如下

 file_exists ( $filename )
登入後複製

參數 filename  為檔案或目錄的路徑。若由 filename 指定的檔案或目錄存在則傳回 TRUE ,否則回傳 FALSE 。

但是該函數在網頁使用UTF8編碼的情況下,對於中文的檔案名稱或資料夾名稱無法傳回正確值,始終傳回false。經測試後得出解決方法,分析造成此情況的原因應該是編碼不同而導致的PHP不能正確判斷。

下面這段程式碼是不能夠傳回正確值的程式碼,無論檔案是否在都回傳不在:

<?php;
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

echo file_exists($newfile);
?>
登入後複製

經過測試之後,增加了一句將UTF8編碼轉換為GB2312編碼的語句,就可以正確判斷了:

<?php
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

$file=iconv(&#39;UTF-8&#39;,&#39;GB2312&#39;,$file);

echo file_exists($newfile);
?>
登入後複製

以上是php 中file_exists函數不支援中文名稱的解決方法實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!