>  기사  >  백엔드 개발  >  새 PHP 파일의 이름이 깨졌을 경우 어떻게 해야 합니까?

새 PHP 파일의 이름이 깨졌을 경우 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2022-11-04 10:52:211562검색

새 PHP 파일의 잘못된 이름에 대한 해결 방법: 1. "iconv" 또는 "mb_convert_encoding" 함수를 사용하여 문자 인코딩을 변환합니다. 2. "function ConvertEncoding($string){...}" 메서드를 사용하여 다음과 같이 변환합니다. 시스템 설정으로 코드를 작성하세요.

새 PHP 파일의 이름이 깨졌을 경우 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

php 새 파일 이름이 깨졌을 경우 어떻게 해야 하나요?

Windows에서 PHP가 mkdir(), file_put_contents(), fopen() 함수를 호출하여 한자로 디렉터리나 문서 이름을 생성하면 문자가 깨져서 나타납니다.

이유

정보를 확인해보니 시스템 문자셋과 관련이 있습니다.

  • windows(중국어 간체), 기본 문자 집합: gbk

  • windows(중국어 번체), 기본 문자 집합: big5

  • linux, 기본 문자 집합: utf-8

해결 방법

문자 인코딩을 변환하려면 iconv 또는 mb_convert_encoding 함수를 사용하세요.

//将字符串 str 从 in_charset 转换编码到 out_charset。
string iconv ( string $in_charset , string $out_charset , string $str )
//将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

시스템 설정에 따라 인코딩을 변환합니다. 방법은 다음과 같습니다.

<?php
/**
 * 转换字符编码
 * @param $string
 * @return string
 */
function convertEncoding($string){
    //根据系统进行配置
    $encode = stristr(PHP_OS, &#39;WIN&#39;) ? &#39;GBK&#39; : &#39;UTF-8&#39;;
    $string = iconv(&#39;UTF-8&#39;, $encode, $string);
    //$string = mb_convert_encoding($string, $encode, &#39;UTF-8&#39;);
    return $string;
}

잘못된 코드 예제

<?php
#示例1
$dir = __DIR__ . &#39;/中英文目录Test1&#39;;
mkdir($dir); 
//目录名:涓嫳鏂囩洰褰昑est1
#示例2
$fileName = __DIR__ . &#39;/中英文档名Test2.txt&#39;;
file_put_contents($fileName, &#39;文件内容Test2&#39;);
//文件名:涓嫳鏂囨。鍚峊est2.txt
//文件内容:文件内容Test2
#示例3
$fileName = __DIR__ . &#39;/中英文档名Test3.txt&#39;;
$fp = fopen($fileName, &#39;w&#39;);
fwrite($fp, &#39;文件内容Test3&#39;);
fclose($fp);
//文件名:涓嫳鏂囨。鍚峊est3.txt
//文件内容:文件内容Test3
?>

해결 방법 예제

<?php
#示例1
$dir = __DIR__ . &#39;/中英文目录Test1&#39;;
$dir = convertEncoding($dir);
mkdir($dir); 
//目录名:中英文目录Test1
#示例2
$fileName = __DIR__ . &#39;/中英文档名Test2.txt&#39;;
$fileName = convertEncoding($fileName);
file_put_contents($fileName, &#39;文件内容Test2&#39;);
//文件名:中英文档名Test2.txt
//文件内容:文件内容Test2
#示例3
$fileName = __DIR__ . &#39;/中英文档名Test3.txt&#39;;
$fileName = convertEncoding($fileName);
$fp = fopen($fileName, &#39;w&#39;);
fwrite($fp, &#39;文件内容Test3&#39;);
fclose($fp);
//文件名:中英文档名Test3.txt
//文件内容:文件内容Test3
/**
 * 转换字符编码
 * @param $string
 * @return string
 */
function convertEncoding($string){
    //根据系统进行配置
    $encode = stristr(PHP_OS, &#39;WIN&#39;) ? &#39;GBK&#39; : &#39;UTF-8&#39;;
    $string = iconv(&#39;UTF-8&#39;, $encode, $string);
    //$string = mb_convert_encoding($string, $encode, &#39;UTF-8&#39;);
    return $string;
}

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 새 PHP 파일의 이름이 깨졌을 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.