PHP でさまざまなスマート クォートを変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-22 06:53:30
オリジナル
391 人が閲覧しました

How Can I Convert Various Smart Quotes in PHP?

PHP でのさまざまなスマート引用符の変換

スマート引用符は、読みやすさと美しさを向上させるためにタイポグラフィーで使用される標準引用符の一般的な変形です。文章の魅力。テキストを操作するときにこれらのスマート引用符を通常の引用符に正しく変換するには、さまざまなコンテキストで使用されるさまざまなスマート引用符文字を考慮することが重要です。

スマート引用符変換の機能の改善:

次の拡張関数は、さまざまなスマート引用符文字の包括的なマッピングを組み込むことで、提供された元の関数の欠点を解決します。文字マップ ($chr_map) と事前計算された配列 ($chr および $rpl) の両方を活用して効率を最適化します。

<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>
ログイン後にコピー

この改良された関数は、Unicode 準拠のアプローチを利用し、包括的な範囲をカバーします。スマートな引用文字。事前に計算された配列を活用することで、スマート クオートから標準クォートへの正確な変換を保証しながら、高レベルの効率を維持します。

追加の考慮事項:

  • エンコーディング検出: 入力エンコーディングが不確実な場合は、上記の関数を適用する前に utf8_encode() を使用して UTF-8 エンコーディングを確認します。
  • Windows コードページ 1252 の正規化: Windows コードページ 1252 に由来する可能性のあるテキストについては、正規化の使用を検討してください。
  • Unicode 文字プロパティ: 文字プロパティを使用すると、スマート クオートの処理をさらに強化できますが、正規表現での使用は制限されています。

以上がPHP でさまざまなスマート クォートを変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!