Wie kann ich verschiedene intelligente Anführungszeichen in PHP konvertieren?

Susan Sarandon
Freigeben: 2024-10-22 06:53:30
Original
390 Leute haben es durchsucht

How Can I Convert Various Smart Quotes in PHP?

Konvertieren verschiedener intelligenter Anführungszeichen in PHP

Intelligente Anführungszeichen sind gängige Varianten von Standard-Anführungszeichen, die in der Typografie verwendet werden, um die Lesbarkeit und Ästhetik zu verbessern Reiz des Textes. Um die korrekte Umwandlung dieser intelligenten Anführungszeichen in normale Anführungszeichen bei der Arbeit mit Text sicherzustellen, ist es wichtig, die Vielfalt der in verschiedenen Kontexten verwendeten intelligenten Anführungszeichen zu berücksichtigen.

Verbesserte Funktion für die Umwandlung intelligenter Anführungszeichen:

Die folgende erweiterte Funktion behebt die Mängel der ursprünglichen Funktion, die Sie bereitgestellt haben, indem sie eine umfassende Zuordnung für verschiedene Anführungszeichen enthält. Es nutzt sowohl eine Zeichentabelle ($chr_map) als auch vorberechnete Arrays ($chr und $rpl) für optimale Effizienz:

<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>
Nach dem Login kopieren

Diese verbesserte Funktion nutzt einen Unicode-kompatiblen Ansatz und deckt einen umfassenden Bereich ab Intelligente Anführungszeichen. Durch die Nutzung vorberechneter Arrays wird ein hohes Maß an Effizienz aufrechterhalten und gleichzeitig eine genaue Konvertierung intelligenter Anführungszeichen in Standardanführungszeichen gewährleistet.

Zusätzliche Überlegungen:

  • Kodierung Erkennung: Wenn die Eingabekodierung unsicher ist, verwenden Sie utf8_encode(), um die UTF-8-Kodierung sicherzustellen, bevor Sie die obige Funktion anwenden.
  • Normalisierung der Windows-Codepage 1252: Erwägen Sie für Text, der möglicherweise aus der Windows-Codepage 1252 stammt, die Verwendung einer Normalisierung Map, um bestimmte Codepunkte in ihre Unicode-Äquivalente zu konvertieren.
  • Unicode-Zeicheneigenschaften: Die Verwendung von Zeicheneigenschaften kann die intelligente Handhabung von Anführungszeichen weiter verbessern, ihre Verfügbarkeit in regulären Ausdrücken ist jedoch begrenzt.

Das obige ist der detaillierte Inhalt vonWie kann ich verschiedene intelligente Anführungszeichen in PHP konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!