Apakah yang perlu saya lakukan jika nama fail php baharu rosak?

藏色散人
Lepaskan: 2023-03-17 11:28:01
asal
1600 orang telah melayarinya

Penyelesaian kepada nama fail PHP baharu yang bercelaru: 1. Gunakan fungsi "iconv" atau "mb_convert_encoding" untuk menukar pengekodan aksara 2. Gunakan "function convertEncoding($string){...} " kaedah untuk melaksanakan Hanya tetapkan tetapan sistem untuk menukar pengekodan.

Apakah yang perlu saya lakukan jika nama fail php baharu rosak?

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.

Apakah yang perlu saya lakukan jika nama fail baharu dalam php rosak?

Di bawah tetingkap, apabila PHP memanggil fungsi mkdir(), file_put_contents(), dan fopen() untuk mencipta direktori atau nama dokumen dengan aksara Cina, aksara bercelaru muncul.

Punca

Selepas menyemak maklumat, ia berkaitan dengan set aksara sistem.

  • windows (Cina Ringkas), set aksara lalai ialah: gbk

  • windows (Cina Tradisional), set aksara lalai ialah: big5

  • linux, set aksara lalai ialah: utf-8

Penyelesaian

Gunakan iconv atau fungsi mb_convert_encoding Tukar pengekodan aksara.

//将字符串 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() ] )
Salin selepas log masuk

Tukar pengekodan mengikut tetapan sistem Kaedahnya adalah seperti berikut:

<?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;
}
Salin selepas log masuk

Contoh kod bercelaru

<?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
?>
Salin selepas log masuk
<🎜. >

Contoh penyelesaian

<?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;
}
Salin selepas log masuk
Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika nama fail php baharu rosak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan