ホームページ > バックエンド開発 > PHPチュートリアル > phpのfopenで中国語のファイル名でファイルが作成できない問題

phpのfopenで中国語のファイル名でファイルが作成できない問題

墨辰丷
リリース: 2023-03-28 06:40:01
オリジナル
1784 人が閲覧しました

この記事では、PHP で fopen が中国語のファイル名でファイルを作成できない問題を主に紹介します。興味のある方はぜひ参考にしてください。

以前、ウェブページのチャートセットはutf-8を使用しており、ファイルもutf-8を使用していましたが、fopen()を使用して中国語のファイル名を持つファイルを作成すると、ファイル名がすべて文字化けしてしまいました。 !

多くのドキュメントを確認し、多くの方法を試しましたが、解決できませんでした。他の方法を使用してこの問題を回避しようと考えていましたが、Windows のデフォルトのテキストエンコーディングが ansi であることに突然気づきました。 Baidu でこれを確認したため、作成されたファイル名が文字化けしないように、Web ページも ANSI エンコードする必要があります。

その後、検証を開始し、Web ページを ansi に保存し、chartset ステートメントを削除しました。問題はありませんでしたが、後でこの Web ページに他の Web ページも含まれていることを思い出したので、含まれている Web ページを変更しました。 ansi で保存します、笑すべて問題ありません

プログラミングは本当に積み重ねに依存する仕事です。Windows のデフォルトのエンコーディングが ansi であることをこれまで知らなかったら、どれくらい時間がかかるかわかりません。この問題を解決するには

ps: < メタコンテンツ ="text/html; charset=utf-8" http -equiv ="Content-type" > の前に配置する必要があります。 ;title> を有効にするには

その後、Web ページは引き続き UTF-8 でエンコードされて保存されます。fopen() のファイル名パラメーターを個別にエンコードするだけです。 )、utf-8 を gb2312 に変換するプログラムは、中国語のファイル名の文字化けを回避できます

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>标题:{title}</title>
</head>
<body>
<b>此新闻的内容:</b>{content}
</body>
</html>
ログイン後にコピー

test.php

<?php

  //实际应用中很可能是查询数据库取内容。
  $rows = array(array("替换标题1","替换内容1"),array("替换标题2","替换内容2"));
  $filename = "tmp.htm";
  foreach($rows as $id => $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 "创建成功!";
?>
ログイン後にコピー

この記事の内容は以上です、皆様の勉強に少しでもお役に立てれば幸いです。

関連する推奨事項:


fopen

関数の紹介と使用法の詳細な説明

php fopen()とfile_get_contents()の詳細な説明

fopen
機能に関する10の記事 コンテンツおすすめ


以上がphpのfopenで中国語のファイル名でファイルが作成できない問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート