La solution au problème selon lequel le nom du fichier PHP ne peut pas être en chinois : encodez et enregistrez d'abord la page Web avec utf-8, puis encodez séparément les paramètres du nom de fichier dans fopen via la fonction iconv pour éviter un chinois tronqué ; noms de fichiers.
Recommandé : "Tutoriel vidéo PHP"
Le problème qui fopen en php ne peut pas créer un fichier avec un chinois nom de fichier
Le jeu de graphiques de la page Web précédente utilisait utf-8, et le fichier utilisait également utf-8. Ensuite, le problème est apparu lors de l'utilisation de fopen() pour créer un fichier avec un nom de fichier chinois. le nom du fichier était tronqué !
J'ai vérifié beaucoup de documents et essayé de nombreuses méthodes, mais je n'ai pas pu le résoudre. Je pensais utiliser d'autres méthodes pour contourner ce problème, mais tout à coup, il m'est venu à l'esprit que le codage de texte par défaut de Windows est. ansi, puis j'ai cherché à nouveau et confirmé. Afin de comprendre cela, ma page Web doit également être codée en ansi afin que le nom du fichier créé ne soit pas tronqué.
Ensuite, j'ai commencé à vérifier, j'ai enregistré la page Web avec ansi et j'ai supprimé l'instruction chartset. C'était ok, mais le contenu de la page Web était tronqué. Plus tard, je me suis souvenu que cette page Web incluait également d'autres pages Web, alors je changé l'inclusion La page Web a également été modifiée en ansi pour enregistrer, haha tout va bien
La programmation est vraiment un travail qui repose sur l'accumulation Si je n'avais jamais vu que l'encodage par défaut de Windows est ansi, alors ce problème sera résolu en un rien de temps.
ps : < meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > placé dans
Plus tard, j'ai pensé à une meilleure solution. La page Web est toujours codée et enregistrée en utf-8. fopen() est codé séparément. PHP a iconv() est un programme qui modifie l'encodage. Il convertit utf-8 en gb2312 pour éviter les noms de fichiers chinois tronqués
test.htm
<!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 "创建成功!"; ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!