PHP - Mengendalikan Nama Fail UTF-8 semasa Muat Naik
Apabila berurusan dengan muat naik yang mengandungi nama fail UTF-8, mungkin sukar untuk memastikan bahawa watak-watak itu dipelihara dengan tepat. Ini amat relevan untuk bahasa seperti Vietnam yang menggunakan diakritik dan aksara bukan Latin.
Dalam PHP, pengendalian nama fail UTF-8 memerlukan pertimbangan khusus, kerana fungsi sistem fail mungkin tidak menyokongnya secara asli. Seperti yang digambarkan dalam contoh kod yang disediakan:
<code class="php"><?php if(isset($_POST["submit"])) { if($_FILES["upload"]["error"] > 0 ) echo "FILE ERROR!"; else { $base_dir = "D:/"; $fn = $_FILES["upload"]["name"]; $fn2 = $base_dir . $fn; move_uploaded_file($_FILES["upload"]["tmp_name"], $fn2); } } ?></code>
Kod ini cuba memuat naik fail bernama Vietnam, "Tên Tệp Tiếng Việt.JPG". Walau bagaimanapun, apabila dimuat naik, nama fail yang terhasil pada komputer dipaparkan sebagai "Tên Tệp Tiếng Việt.JPG" disebabkan pengendalian aksara yang salah.
Untuk menyelesaikan isu ini, ia adalah diperlukan untuk menukar nama fail kepada halaman kod sistem sebelum mengendalikannya dalam fungsi sistem fail PHP. Halaman kod ialah tetapan yang mentakrifkan aksara yang tersedia dalam sistem pengendalian.
Bergantung pada sistem pengendalian khusus anda dan halaman kod lalainya, terdapat dua penyelesaian yang berpotensi:
Pilihan 1: Hadkan Aksara Nama Fail
Ini melibatkan pengehadan aksara dalam nama fail kepada yang disokong oleh halaman kod sistem, biasanya ASCII (437) dalam kes anda. Walaupun ini memastikan bahawa nama fail disimpan dengan tepat, ia mengehadkan penggunaan aksara Vietnam tertentu.
Pilihan 2: Tukar Halaman Kod Sistem
Ini memerlukan perubahan kod sistem halaman ke Vietnam (1258) melalui Tetapan Serantau dalam Panel Kawalan. Setelah perubahan dibuat, tukarkan nama fail kepada CP1258, yang membolehkan pengendalian yang betul oleh fungsi sistem fail PHP.
<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir . $fn);</code>
Dengan memilih salah satu daripada pendekatan ini, anda boleh memastikan bahawa nama fail Vietnam UTF-8 dikendalikan dengan betul semasa muat naik dalam PHP.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Nama Fail UTF-8 dalam PHP untuk Muat Naik Vietnam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!