Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man in PHP intelligente Anführungszeichen effektiv in reguläre Anführungszeichen umwandeln?

Wie kann man in PHP intelligente Anführungszeichen effektiv in reguläre Anführungszeichen umwandeln?

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 06:48:30833Durchsuche

How to Effectively Convert Smart Quotes to Regular Quotes in PHP?

Intelligente Anführungszeichen in PHP konvertieren: Eine umfassende Lösung

Intelligente Anführungszeichen sind typografische Zeichen, die verwendet werden, um direkte Sprache oder Zitate im Text anzuzeigen. Sie können die Lesbarkeit verbessern und dem geschriebenen Inhalt Nuancen verleihen. Die Arbeit mit intelligenten Anführungszeichen in Programmiersprachen wie PHP erfordert jedoch eine ordnungsgemäße Handhabung, um eine genaue Anzeige und Konvertierung sicherzustellen.

Problemstellung

Die bereitgestellte PHP-Funktion zielt darauf ab, verschiedene Typen zu konvertieren von intelligenten Anführungszeichen zu regulären (geraden) Anführungszeichen. Es fehlt jedoch eine umfassende Unterstützung für den Umgang mit allen Angebotsvarianten. Die Herausforderung besteht darin, alle möglichen Unicode-Zeichen zu identifizieren, die intelligente Anführungszeichen darstellen, und einen robusten Konvertierungsmechanismus zu implementieren.

Lösung

Um alle Arten von intelligenten Anführungszeichen effektiv zu konvertieren, benötigen wir um eine umfassende Zuordnung zwischen den verschiedenen Unicode-Zeichen und ihren entsprechenden regulären Anführungszeichen-Gegenstücken zu erstellen. Der folgende Codeausschnitt bietet eine erweiterte Lösung:

<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>

Diese erweiterte Version berücksichtigt sowohl die Windows-Codepage 1252 als auch reguläre Unicode-Zeichen und gewährleistet so eine umfassende Konvertierung.

Zusätzliche Überlegungen

  1. Unicode-Kodierung: Die bereitgestellte Lösung setzt UTF-8-Kodierung voraus. Wenn der Eingabetext anders codiert ist, sollte er vor der Anwendung der Konvertierung in UTF-8 konvertiert werden.
  2. Normalisierung: Wenn erwartet wird, dass Ihre Eingabe Zeichen aus verschiedenen Quellen enthält, kann eine Kodierungsnormalisierung erfolgen erforderlich sein, um eine konsistente Konvertierung sicherzustellen.
  3. Leistung: Erwägen Sie bei großen Textdatensätzen eine Optimierung des Konvertierungsprozesses durch Vorberechnung der Zeichenersetzungs-Arrays. Dies kann die Leistung verbessern, indem wiederholte Funktionsaufrufe vermieden werden.

Indem Sie diese Richtlinien befolgen, können Sie einen robusten und umfassenden intelligenten Angebotskonvertierungsmechanismus in PHP implementieren, der eine genaue Verarbeitung verschiedener Angebotsvarianten gewährleistet.

Das obige ist der detaillierte Inhalt vonWie kann man in PHP intelligente Anführungszeichen effektiv in reguläre Anführungszeichen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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