ホームページ  >  記事  >  バックエンド開発  >  PHP でアクセント付き文字を基本文字に変換するにはどうすればよいですか?

PHP でアクセント付き文字を基本文字に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 08:32:02241ブラウズ

How can I convert accented characters to their base characters in PHP?

PHP でアクセント付き文字を基本文字に変換する

PHP 言語には、アクセント付き文字を対応する基本文字に置き換える機能が用意されています。

Normalizer クラスの使用

Normalizer クラスは、アクセントやその他の発音記号を含む文字の正規化のために設計されています。このクラスを使用してアクセントを削除するには:

<code class="php">use Normalizer;
$string = Normalizer::normalize($string, Normalizer::FORM_D);</code>

カスタム アクセント文字置換

Normalizer クラスを使用したくない場合、またはアクセント置換をカスタマイズする必要がある場合は、次の関数を使用できます:

コード:

<code class="php">function unaccent($string)
{
    return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '', htmlentities($string, ENT_QUOTES, 'UTF-8'));
}</code>

使用例:

「ã」を置き換えるには"a" および "é" と "e":

<code class="php">$string = "ãé";
$unaccentedString = unaccent($string);</code>

仕組み:

この関数は、アクセント付き文字を次を使用して HTML エンティティ表現に変換します。 htmlentities()。次に、正規表現によって HTML エンティティが基本文字に置き換えられます。

この方法は、最も一般的なアクセントと互換性がありますが、網羅的ではなく、考えられるすべてのケースをカバーしているわけではない可能性があります。

以上がPHP でアクセント付き文字を基本文字に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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