現在の位置: ホーム> 最新記事一覧> preg_replaceを使用してmb_convert_kanaを使用して入力を正規化する方法は?

preg_replaceを使用してmb_convert_kanaを使用して入力を正規化する方法は?

gitbox 2025-08-18

1。MB_CONVERT_KANA機能の紹介

MB_CONVERT_KANAは、PHPのマルチバイト文字列処理機能であり、Kana Chargeterなどの日本語文字の全幅と半幅の文字を変換するために使用されます。この関数は、入力内の全幅および半幅の文字を処理するのに特に適しており、入力コンテンツの形式が統一されていることを確認します。

mb_convert_kana関数の共通形式は次のとおりです。

 <span><span><span class="hljs-title function_ invoke__">mb_convert_kana</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$option</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span></span>
  • $ strは変換する文字列です。

  • $オプションは変換のオプションであり、以下を含めることができます。

    • 「A」は、すべての全幅の英語数の文字を半幅に変換します。

    • 「A」は、全幅の英語の手紙を半幅に変換します。

    • 「K」は、全幅の仮名を半幅に変換します。

    • 「K」は、完全な幅の仮名文字(長いメモを含む)を半幅に変換します。

    • 'H'は、全幅の句読点を半幅に変換します。

    • 「H」は、全幅の句読点(期間、コンマなどを含む)を半幅に変換します。

    • 「C」は全幅数値を半幅に変換します。

  • $エンコーディングは文字エンコード( UTF-8など)であり、デフォルトはSJISです。

たとえば、完全な幅の英語数字を含む文字列を半幅に変換します。

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"ABC123"</span></span><span>;
</span><span><span class="hljs-variable">$converted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_kana</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">'a'</span></span><span>); </span><span><span class="hljs-comment">// 結果は次のとおりです 'ABC123'</span></span><span>
</span></span>

2。preg_replace関数の概要

preg_replaceは、通常のパターンに応じて文字列内のコンテンツを置き換えるPHPの正規表現関数です。それを通して、特に特殊文字を削除または入力データフォーマットする必要がある場合、文字列の複雑なパターンマッチングおよび交換操作を簡単に実行できます。

preg_replace関数の基本的な使用法は次のとおりです。

 <span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$replacement</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>);
</span></span>
  • $パターンは、正規表現のパターンです。

  • $の交換は、交換する文字列です。

  • $件名は保留中の文字列です。

たとえば、文字列内のすべての数値をアスタリスクに置き換えます。

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"abc123xyz"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">"/\d/"</span></span><span>, </span><span><span class="hljs-string">"*"</span></span><span>, </span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// 結果は次のとおりです 'abc***xyz'</span></span><span>
</span></span>

3. preg_replacemb_convert_kanaを使用します

MB_CONVERT_KANAPREG_REPLACEを一緒に使用することにより、入力をより詳細に制御できます。たとえば、ユーザーの入力の場合、全幅の文字を半幅に変換するだけでなく、余分なスペースや他の非アルファニメリック文字を削除する必要があります。これらの2つの関数を組み合わせて入力を正規化する方法を示す例を以下に示します。

ユーザーが完全な文字、スペース、または特別なシンボルを持つ文字列を入力できるフォームがあるとします。データの一貫性を確保するために、保存する前に正規化したいと考えています。

例:入力文字列の正規化

<span><span><span class="hljs-comment">// ユーザーが入力した元のデータを仮定します</span></span><span>
</span><span><span class="hljs-variable">$user_input</span></span><span> = </span><span><span class="hljs-string">"  ABC 123 !@#"</span></span><span>;

</span><span><span class="hljs-comment">// 使用 mb_convert_kana 全幅文字を半幅に変換します</span></span><span>
</span><span><span class="hljs-variable">$normalized_input</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_kana</span></span><span>(</span><span><span class="hljs-variable">$user_input</span></span><span>, </span><span><span class="hljs-string">'a'</span></span><span>);

</span><span><span class="hljs-comment">// 使用 preg_replace 余分なスペースと特別なシンボルを削除します</span></span><span>
</span><span><span class="hljs-variable">$normalized_input</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">"/[^a-zA-Z0-9]/"</span></span><span>, </span><span><span class="hljs-string">""</span></span><span>, </span><span><span class="hljs-variable">$normalized_input</span></span><span>);

</span><span><span class="hljs-comment">// 結果出力</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$normalized_input</span></span><span>;  </span><span><span class="hljs-comment">// 結果は次のとおりです 'ABC123'</span></span><span>
</span></span>

説明する:

  1. MB_CONVERT_KANA($ user_input、 'a') :すべてのフル幅の文字(英語の数値文字と仮名を含む)を半幅の文字に変換します。

  2. preg_replace( "/[^a-za-z0-9]/"/"、" "、$ remarized_input) :文字列内のすべての非アルファニュミリック文字(つまり、スペース、句読点など)を削除します。

4。アプリケーションシナリオ

この組み合わせアプリケーションは、次のシナリオで使用するのに最適です。

  • フォームの提出:ユーザーがデータを提出すると、彼はしばしば、完全と半幅、スペース、句読点などの混合などの一貫性のない形式でコンテンツを入力します。これら2つの機能を使用して、それらを一貫した形式に変換できます。

  • データベースストレージ:データを保存するとき、データの一貫性を保証することは、後続の処理に非常に重要です。入力を正規化することにより、一貫性のない形式によって引き起こされるクエリエラーが回避されます。

  • 検索機能:正規化された入力は、ファジー検索またはキーワードマッチングをサポートする必要がある場合、検索の精度を改善するのに役立ちます。

5。概要

MB_CONVERT_KANAPREG_REPLACEを組み合わせることにより、ユーザー入力のより柔軟で詳細な正規化を実行できます。この方法は、文字形式を統合するだけでなく、役に立たないシンボルとスペースを削除し、データの一貫性と品質を向上させます。実際の開発では、この方法は、フォーム入力処理、データベースストレージ、検索エンジンの最適化などのシナリオでよく使用され、非常に実用的な手法です。