PHP 파일 이름이 중국어일 수 없는 문제에 대한 해결책: 먼저 웹 페이지를 UTF-8로 인코딩하고 저장한 다음, 중국어 파일 이름이 왜곡되는 것을 방지하기 위해 iconv 함수를 통해 fopen의 파일 이름 매개변수를 별도로 인코딩합니다.
추천: "PHP Video Tutorial"
PHP에서 fopen이 중국어 파일 이름을 가진 파일을 생성할 수 없는 문제
이전 웹 페이지의 차트 세트는 utf-8을 사용했으며 파일도 utf를 사용했습니다. -8, 그런 다음 fopen()이 중국어 파일 이름으로 파일을 생성할 때 문제가 발생합니다. 파일 이름이 깨졌습니다!
많은 문서를 확인하고 많은 방법을 시도했지만 해결되지 않았습니다. 원래는 이 문제를 우회하기 위해 다른 방법을 사용하려고 생각했지만 갑자기 Windows의 기본 텍스트 인코딩이 ANSI라는 생각이 들었습니다. 그러다가 바이두에서 검색해서 확인한 결과, 생성된 파일명이 깨지지 않도록 웹페이지도 ANSI 인코딩을 해야 합니다.
그런 다음 확인을 시작하고 웹페이지를 ansi에 저장하고 차트 세트 문을 제거했습니다. 괜찮았지만 나중에 이 웹페이지에 다른 웹페이지도 포함되어 있다는 것이 기억나서 포함된 웹페이지를 변경했습니다. ansi로 저장하면 ㅋㅋㅋ 다 괜찮아요
프로그래밍은 사실 축적에 의존하는 직업이에요. 이전에 Windows의 기본 인코딩이 ansi라는 것을 보지 못했다면 이 문제는 금방 해결될 것입니다.
ps: < 메타 콘텐츠 = "text/html; charset=utf-8" http -equiv ="Content-type" > 이 메타 태그는
나중에 업데이트가 생각났습니다. 좋은 해결책은 웹 페이지를 여전히 UTF-8로 인코딩하고 저장해야 하지만 fopen()의 파일 이름 매개 변수는 별도로 인코딩할 수 있다는 것입니다. 인코딩을 변환하여 UTF-8을 gb2312로 변환합니다. 중국어 파일 이름이 왜곡되는 것을 방지할 수 있습니다
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 "创建成功!"; ?>
위 내용은 php파일명이 중국어로 안되는 문제 해결방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!