ホームページ  >  記事  >  バックエンド開発  >  PHP であらゆるタイプのスマート クォートを変換するには?

PHP であらゆるタイプのスマート クォートを変換するには?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-22 06:47:02911ブラウズ

How to Convert All Types of Smart Quotes in PHP?

PHP ですべての種類のスマート引用符を変換する

スマート引用符は、通常の直線引用符 (' と ") の代わりに使用される活字記号です。ただし、ソフトウェア アプリケーションでは、異なる種類のスマート クオート間の変換に苦労し、不一致が生じるのが一般的です。

スマート クォート変換の課題

スマート クォートの変換の難しささまざまなエンコーディングと文字を表すために使用される文字が異なるため、オペレーティング システムやソフトウェア プログラムが独自の標準を採用しているため、たとえば、あるシステムでは Unicode が使用され、別のシステムでは Windows コードページ 1252 が使用されることがあります。

PHP による包括的な変換

この課題に対処するには、PHP の包括的なスマート引用符変換関数は、関連するさまざまなエンコーディングと文字を完全に理解する必要があります。スマート クオート (Unicode、Windows コードページ 1252、その他のレガシー エンコーディングで定義されているものを含む)。

最適化された PHP 実装

次の最適化された PHP 実装は、すべての種類のスマート クォートを通常の引用符に変換します。

<code class="php">function convert_smart_quotes($string)
{
    // Create a map of smart quote characters to their respective Unicode representations
    $smart_quotes = array(
        "\xC2\xAB" => '"', // « (U+00AB)
        "\xC2\xBB" => '"', // » (U+00BB)
        "\xE2\x80\x98" => "'", // ‘ (U+2018)
        "\xE2\x80\x99" => "'", // ’ (U+2019)
        "\xE2\x80\x9A" => "'", // ‚ (U+201A)
        "\xE2\x80\x9B" => "'", // ‛ (U+201B)
        "\xE2\x80\x9C" => '"', // “ (U+201C)
        "\xE2\x80\x9D" => '"', // ” (U+201D)
        "\xE2\x80\x9E" => '"', // „ (U+201E)
        "\xE2\x80\x9F" => '"', // ‟ (U+201F)
        "\xE2\x80\xB9" => "'", // ‹ (U+2039)
        "\xE2\x80\xBA" => "'", // › (U+203A)
    );

    // Strtr function can directly replace the smart quote characters with their Unicode counterparts
    $converted_string = strtr($string, $smart_quotes);

    // Return the converted string
    return $converted_string;
}</code>

この関数は、Unicode、Windows コードページ 1252、従来のエンコーディングに見られるものを含む、幅広いスマート クオートのバリエーションをカバーします。 strtr を使用すると、スマート クオートのすべてのインスタンスが対応する Unicode 表現に置き換えられ、一貫性のある標準化されたテキストが得られます。

以上がPHP であらゆるタイプのスマート クォートを変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。