


Apa yang perlu dilakukan jika php Cina dihantar ke latar belakang dengan aksara yang bercelaru
Penyelesaian kepada aksara Cina bercelaru yang dihantar ke latar belakang dalam PHP: 1. Gunakan "iconv('UTF-8', 'GB2312//IGNORE', $targetFile);" 2. Gunakan "move_uploaded_file("; $tempFile, $targetFile);".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.
Apakah yang perlu saya lakukan jika php Cina dihantar ke latar belakang dengan aksara yang bercelaru?
Penyelesaian kepada masalah bercelaru Cina storan latar belakang muat naik fail php:
Penjelasan pemprosesan latar belakang muat naik fail php:
Selepas pengguna memuat naik fail (saya menggunakan uploadify2.3 untuk bahagian hadapan. Saya mahu menyimpannya mengikut nama fail asalnya (kadang-kadang dalam bahasa Cina). Hanya menggunakan arahan move_uploaded_file PHP akan menyebabkan aksara yang kacau (saya pelayan Ubuntu). Anda perlu menggunakan icotargetFile=iconv(′UTF−8′,′GB2312//IGNORE′,targetFile) dahulu; tanpa IGNORE, iconv akan gagal untuk menukar aksara - (bar mendatar) dan memotongnya secara automatik selepas itu. Contohnya:
iconv('UTF-8', 'GB2312//IGNORE', "博客—yet"); // 输出"博客yet" iconv('UTF-8', 'GB2312//IGNORE', "博客—yet"); // 输出"博客"
Jadi kaedah penyimpanan yang betul ialah:
$targetFile = iconv('UTF-8', 'GB2312//IGNORE', $targetFile); // UTF8转GB2312 move_uploaded_file($tempFile, $targetFile); // 服务器把文件暂时放在$tempFile
Oleh kerana transcoding akan kehilangan aksara, kita perlu menyimpan nama fail baharu untuk menentukan aksara yang mana hilang, saya Gunakan helah ini untuk menukar ke belakang dan ke belakang:
$targetFile = iconv('GB2312', 'UTF-8//IGNORE', $targetFile );
Penjelasan tentang pemprosesan latar belakang muat turun fail php:
Bila menggunakan GB2312 dan bila menggunakan UTF8 adalah penting.
Selain itu, ob_clean() dan flush() adalah kunci kepada sama ada fail yang dimuat turun bercelaru
<?php $ROOT = $_SERVER["DOCUMENT_ROOT"]; // 获取根路径 $filename = $_GET["filename"]; // GET方式拿到文件名 $filepath = $ROOT.$filename; // 文件路径UFT8版 $filepath_iconv = iconv('UTF-8', 'GB2312//IGNORE', $ROOT.$filename); // 文件路径GB2312版 if (is_file($filepath_iconv)) // 和上面一样,php的文件系统函数的输入一定要GB2312字符,否则is_file返回false { $fileinfo = pathinfo($filepath); // 返回给客户端的用UFT8 header('Content-type: application/x-'.$fileinfo['extension']); header('Content-Disposition: attachment; filename='.$fileinfo['basename']); header('Content-Length: '.filesize($filepath_iconv)); // GB2312才能访问文件 ob_clean(); // 如果不加这两句的话,下载下来的文件是乱码的 flush(); // 如果不加这两句的话,下载下来的文件是乱码的 readfile($filepath_iconv); // GB2312才能访问文件 exit(); } else { die("文件不存在或已被删除"); } ?>
Berikut ialah fail belakang muat naik fail yang saya gunakan dengan uploadify 2.3, untuk rujukan sahaja:
<?php error_reporting(0); // 如果需要开启php警告,删除此句 if (!empty($_FILES)) { $my_articleDBtable = $_GET["my_articleDBtable"]; require_once("../../init.php"); // $tmpimgUploadDir在这个文件里 $tempFile = $_FILES['Filedata']['tmp_name']; $originalName = $_FILES['Filedata']['name']; if (empty($tempFile)) { die("抱歉,由于服务器原因,文件上传失败"); } $dateYmd = date("Ymd",strtotime("now")); $targetPath = $ROOT.$attachmentDir.$dateYmd.'/'; //存储文件夹(绝对路径) mkdir($targetPath, 0777, true); $new_dir_name = new_name($_FILES['Filedata']['name']); //将文件名md5加密,仅保留最后一个后缀 mkdir($targetPath.$new_dir_name, 0777, true); $targetFile = $targetPath.$new_dir_name.'/'.$originalName; //移动tmp文件到指定位置,并防止中文文件名乱码。(tmp文件是服务器自动生成的) move_uploaded_file($tempFile, iconv('UTF-8', 'GB2312//IGNORE', $targetFile)); $originalName = iconv('UTF-8', 'GB2312//IGNORE', $originalName); $originalName = iconv('GB2312', 'UTF-8//IGNORE', $originalName); //返回文件地址 $filename = $originalName; $href = $ROOTTOSERVER.$attachmentDir.$dateYmd.'/'.$new_dir_name.'/'.$originalName; $filename = mysql_real_escape_string($filename); $href = mysql_real_escape_string($href); mysql_query("insert into `$my_articleDBtable` (articleName, articleContent) VALUES ('$filename','$href')") or die(mysql_error()); die("success"); } function new_name($filename){ $ret = array(); $ext = pathinfo($filename); $ext = $ext['extension']; $ext = strtolower($ext); if ($ext=='doc'|| $ext=='docx') { $name = basename($filename,$ext); $name = md5($name.time()); //.'.'.$ext; return $name; } die("文件名不合法"); } ?>
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika php Cina dihantar ke latar belakang dengan aksara yang bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membandingkan model pangkalan data asid dan asas, memperincikan ciri -ciri mereka dan kes penggunaan yang sesuai. Asid mengutamakan integriti data dan konsistensi, sesuai untuk aplikasi kewangan dan e-dagang, sementara asas memberi tumpuan kepada ketersediaan dan

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel ini membincangkan manfaat menggunakan password_hash dan password_verify dalam php untuk mendapatkan kata laluan. Hujah utama ialah fungsi ini meningkatkan perlindungan kata laluan melalui penjanaan garam automatik, algoritma hashing yang kuat, dan secur

Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Artikel ini membincangkan strategi untuk mencegah serangan XSS di PHP, memberi tumpuan kepada sanitisasi input, pengekodan output, dan menggunakan perpustakaan dan kerangka kerja yang meningkatkan keselamatan.

Artikel ini membincangkan penggunaan antara muka dan kelas abstrak dalam PHP, memberi tumpuan kepada masa untuk menggunakan setiap. Antara muka menentukan kontrak tanpa pelaksanaan, sesuai untuk kelas yang tidak berkaitan dan warisan berganda. Kelas Abstrak Memberi Funct Biasa


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini