Tukar Petikan Pintar dalam PHP: Penyelesaian Lengkap
Petikan pintar ialah tanda tipografi yang digunakan untuk menunjukkan pertuturan langsung atau petikan dalam teks. Mereka boleh meningkatkan kebolehbacaan dan menambah nuansa pada kandungan bertulis. Walau bagaimanapun, bekerja dengan petikan pintar dalam bahasa pengaturcaraan seperti PHP memerlukan pengendalian yang betul untuk memastikan paparan dan penukaran yang tepat.
Pernyataan Masalah
Fungsi PHP yang disediakan bertujuan untuk menukar pelbagai jenis daripada petikan pintar kepada petikan biasa (lurus). Walau bagaimanapun, ia tidak mempunyai sokongan menyeluruh untuk mengendalikan semua variasi sebut harga. Cabarannya terletak pada mengenal pasti semua kemungkinan aksara Unicode yang mewakili petikan pintar dan melaksanakan mekanisme penukaran yang mantap.
Penyelesaian
Untuk menukar semua jenis petikan pintar dengan berkesan, kami memerlukan untuk mencipta pemetaan komprehensif antara aksara Unicode yang berbeza dan rakan petikan biasa yang sepadan. Coretan kod berikut menyediakan penyelesaian yang dipertingkatkan:
<code class="php">$chr_map = array( // Windows codepage 1252 "\xC2\x82" => "'", // U+0082⇒U+201A single low-9 quotation mark "\xC2\x84" => '"', // U+0084⇒U+201E double low-9 quotation mark "\xC2\x8B" => "'", // U+008B⇒U+2039 single left-pointing angle quotation mark "\xC2\x91" => "'", // U+0091⇒U+2018 left single quotation mark "\xC2\x92" => "'", // U+0092⇒U+2019 right single quotation mark "\xC2\x93" => '"', // U+0093⇒U+201C left double quotation mark "\xC2\x94" => '"', // U+0094⇒U+201D right double quotation mark "\xC2\x9B" => "'", // U+009B⇒U+203A single right-pointing angle quotation mark // Regular Unicode "\xC2\xAB" => '"', // U+00AB left-pointing double angle quotation mark "\xC2\xBB" => '"', // U+00BB right-pointing double angle quotation mark "\xE2\x80\x98" => "'", // U+2018 left single quotation mark "\xE2\x80\x99" => "'", // U+2019 right single quotation mark "\xE2\x80\x9A" => "'", // U+201A single low-9 quotation mark "\xE2\x80\x9B" => "'", // U+201B single high-reversed-9 quotation mark "\xE2\x80\x9C" => '"', // U+201C left double quotation mark "\xE2\x80\x9D" => '"', // U+201D right double quotation mark "\xE2\x80\x9E" => '"', // U+201E double low-9 quotation mark "\xE2\x80\x9F" => '"', // U+201F double high-reversed-9 quotation mark "\xE2\x80\xB9" => "'", // U+2039 single left-pointing angle quotation mark "\xE2\x80\xBA" => "'", // U+203A single right-pointing angle quotation mark ); $chr = array_keys ($chr_map); $rpl = array_values($chr_map); $str = str_replace($chr, $rpl, html_entity_decode($str, ENT_QUOTES, "UTF-8"));</code>
Versi dipertingkat ini mempertimbangkan kedua-dua kod Windows 1252 dan aksara Unikod biasa, memastikan penukaran menyeluruh.
Pertimbangan Tambahan
Dengan mengikut garis panduan ini, anda boleh melaksanakan mekanisme penukaran petikan pintar yang mantap dan komprehensif dalam PHP, memastikan pengendalian yang tepat bagi pelbagai variasi petikan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Petikan Pintar kepada Petikan Biasa dalam PHP dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!