「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP であらゆるタイプのスマート クォートを変換するには?

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

2024 年 12 月 26 日に公開
ブラウズ:979

How to Convert All Types of Smart Quotes in PHP?

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

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

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

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

による包括的な変換。 PHP

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

最適化された PHP 実装

次の最適化された 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;
}

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

リリースステートメント この記事は次の場所に転載されています: 1729550719 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3