如何解決php檔名不能中文的問題

藏色散人
發布: 2023-03-06 17:22:02
原創
2973 人瀏覽過

php檔名不能中文的解決方法:先將網頁用utf-8編碼並儲存;然後將fopen裡的檔名參數透過iconv函數單獨進行編碼即可避免中文檔名亂碼。

如何解決php檔名不能中文的問題

推薦:《PHP影片教學

php中fopen不能建立中文檔案名稱檔案的問題

之前網頁的chartset用的是utf-8,檔案也用utf-8,然後用fopen()建立一個中文檔案名稱的檔案時問題就出來了,檔案名稱都是亂碼!

查看了很多文件試了不少方法都解決不了,本來想著用別的方法繞過這個問題,忽然腦子裡閃過Windows默認的文字編碼是ansi,然後再baidu了一下,證實了這一點,所以我的網頁也應該是ansi編碼才能讓創建的檔名不會是亂碼。

接著就著手驗證,把網頁都用ansi保存,去掉chartset語句,果然ok了,但是網頁的內容就成亂碼了,後來想起,這個網頁還include 了別的網頁,把include的網頁也改成ansi保存,哈哈萬事ok

編程這個工作真的很靠積累,如果我以前沒看過Windows默認編碼是ansi,那這個問題就不知何年何月才能解決了

ps:< meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > 這個meta標記一定要放在之前才有效的

後來又想到了一個更好的解決方法,網頁還是用utf-8編碼和保存,只是fopen()裡的文件名參數單獨給它編下碼就行,php有iconv() 這個改換編碼的程序,把utf-8轉成gb2312就可以避免中文檔案名為亂碼了

test.htm

    标题:{title} 
  此新闻的内容:{content}  
登入後複製

test.php

#
 $val){ $title = $val[0]; $content = $val[1]; $pagename = "测试".$id.".html"; //对文件名的编码,避免中文文件名乱码 $pagename = iconv("UTF-8", "GBK", $pagename); //读取模板 $tmpfile = fopen($filename,"r"); $string = fread($tmpfile,filesize($filename)); $string = str_replace("{title}",$title,$string); $string = str_replace("{content}",$content,$string); fclose($tmpfile); //写新文件 $newpage = fopen($pagename,"w"); fwrite($newpage,$string); fclose($newpage); } echo "创建成功!"; ?>
登入後複製

以上是如何解決php檔名不能中文的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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