cari
Rumahpembangunan bahagian belakangmasalah PHPApa 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);".

Apa yang perlu dilakukan jika php Cina dihantar ke latar belakang dengan aksara yang bercelaru

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(&#39;UTF-8&#39;, &#39;GB2312//IGNORE&#39;, $ROOT.$filename); // 文件路径GB2312版
if (is_file($filepath_iconv))  
// 和上面一样,php的文件系统函数的输入一定要GB2312字符,否则is_file返回false
{ 
    $fileinfo = pathinfo($filepath); // 返回给客户端的用UFT8
    header(&#39;Content-type: application/x-&#39;.$fileinfo[&#39;extension&#39;]);
    header(&#39;Content-Disposition: attachment; filename=&#39;.$fileinfo[&#39;basename&#39;]);
    header(&#39;Content-Length: &#39;.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[&#39;Filedata&#39;][&#39;tmp_name&#39;];
    $originalName = $_FILES[&#39;Filedata&#39;][&#39;name&#39;];
    if (empty($tempFile)) { die("抱歉,由于服务器原因,文件上传失败"); }
    $dateYmd = date("Ymd",strtotime("now"));
    $targetPath = $ROOT.$attachmentDir.$dateYmd.&#39;/&#39;; //存储文件夹(绝对路径)
    mkdir($targetPath, 0777, true);
    $new_dir_name = new_name($_FILES[&#39;Filedata&#39;][&#39;name&#39;]); //将文件名md5加密,仅保留最后一个后缀 
    mkdir($targetPath.$new_dir_name, 0777, true);
    $targetFile = $targetPath.$new_dir_name.&#39;/&#39;.$originalName;
    //移动tmp文件到指定位置,并防止中文文件名乱码。(tmp文件是服务器自动生成的)
    move_uploaded_file($tempFile, iconv(&#39;UTF-8&#39;, &#39;GB2312//IGNORE&#39;, $targetFile));
    $originalName = iconv(&#39;UTF-8&#39;, &#39;GB2312//IGNORE&#39;, $originalName);
    $originalName = iconv(&#39;GB2312&#39;, &#39;UTF-8//IGNORE&#39;, $originalName);
    //返回文件地址
    $filename = $originalName;
    $href = $ROOTTOSERVER.$attachmentDir.$dateYmd.&#39;/&#39;.$new_dir_name.&#39;/&#39;.$originalName;
    $filename = mysql_real_escape_string($filename);
    $href = mysql_real_escape_string($href);
    mysql_query("insert into `$my_articleDBtable` (articleName, articleContent) VALUES (&#39;$filename&#39;,&#39;$href&#39;)") or die(mysql_error());
    die("success");
}
function new_name($filename){
    $ret = array();
    $ext = pathinfo($filename);
    $ext = $ext[&#39;extension&#39;];
    $ext = strtolower($ext);
    if ($ext==&#39;doc&#39;|| $ext==&#39;docx&#39;) 
    {
        $name = basename($filename,$ext); 
        $name = md5($name.time()); //.&#39;.&#39;.$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!

Kenyataan
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
Asid vs pangkalan data asas: perbezaan dan bila menggunakan setiap.Asid vs pangkalan data asas: perbezaan dan bila menggunakan setiap.Mar 26, 2025 pm 04:19 PM

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

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail.PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail.Mar 26, 2025 pm 04:18 PM

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.

Pengesahan Input PHP: Amalan Terbaik.Pengesahan Input PHP: Amalan Terbaik.Mar 26, 2025 pm 04:17 PM

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.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan.PHP API Kadar Mengehadkan: Strategi Pelaksanaan.Mar 26, 2025 pm 04:16 PM

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

PHP Kata Laluan Hashing: password_hash dan password_verify.PHP Kata Laluan Hashing: password_hash dan password_verify.Mar 26, 2025 pm 04:15 PM

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

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum.OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum.Mar 26, 2025 pm 04:13 PM

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.

Pencegahan PHP XSS: Bagaimana Melindungi Terhadap XSS.Pencegahan PHP XSS: Bagaimana Melindungi Terhadap XSS.Mar 26, 2025 pm 04:12 PM

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.

PHP Interface vs Kelas Abstrak: Bila Menggunakan Setiap.PHP Interface vs Kelas Abstrak: Bila Menggunakan Setiap.Mar 26, 2025 pm 04:11 PM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DVWA

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