Comment puis-je convertir diverses citations intelligentes en PHP ?

Susan Sarandon
Libérer: 2024-10-22 06:53:30
original
390 Les gens l'ont consulté

How Can I Convert Various Smart Quotes in PHP?

Conversion de diverses citations intelligentes en PHP

Les citations intelligentes sont des variantes courantes des guillemets standard qui sont utilisés en typographie pour améliorer la lisibilité et l'esthétique. attrait du texte. Pour garantir la conversion correcte de ces guillemets intelligents en guillemets normaux lorsque vous travaillez avec du texte, il est essentiel de prendre en compte la diversité des caractères de guillemets intelligents utilisés dans différents contextes.

Fonction améliorée pour la conversion de guillemets intelligents :

La fonction améliorée suivante corrige les lacunes de la fonction d'origine que vous avez fournie en incorporant un mappage complet pour divers caractères de guillemets intelligents. Il exploite à la fois une carte de caractères ($chr_map) et des tableaux pré-calculés ($chr et $rpl) pour une efficacité optimale :

<code class="php">$chr_map = array(
    "\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

    "\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); // but: for efficiency you should
$rpl = array_values($chr_map); // pre-calculate these two arrays
$str = str_replace($chr, $rpl, html_entity_decode($str, ENT_QUOTES, "UTF-8"));</code>
Copier après la connexion

Cette fonction améliorée utilise une approche compatible Unicode, couvrant une gamme complète de caractères de guillemets intelligents. En exploitant des tableaux précalculés, il maintient un haut niveau d'efficacité tout en garantissant une conversion précise des devis intelligents en devis standard.

Considérations supplémentaires :

  • Encodage détection : si l'encodage d'entrée est incertain, utilisez utf8_encode() pour garantir l'encodage UTF-8 avant d'appliquer la fonction ci-dessus.
  • Normalisation de la page de codes Windows 1252 : pour le texte pouvant provenir de la page de codes Windows 1252, envisagez d'utiliser une normalisation map pour convertir des points de code spécifiques en leurs équivalents Unicode.
  • Propriétés de caractères Unicode : l'utilisation de propriétés de caractères peut améliorer encore la gestion des guillemets intelligents, mais leur disponibilité dans les expressions régulières est limitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!