PHPでは、文字列のケース変換が一般的な操作です。マルチバイト文字セット(中国語、日本、韓国など)の文字列処理の場合、PHPはMB_CONVERT_CASE関数を提供して、文字を高度なケースと小文字を変換します。従来のstrtoupper()およびstrtower()関数とは異なり、 mb_convert_caseはマルチバイトエンコードをサポートします。これは、非ラチン文字を含む文字列をより適切に処理できます。
この記事では、 MB_Convert_Case関数を使用して文字列を大文字に変換する方法とそれらの使用方法を詳細に分析します。
MB_CONVERT_CASE関数は、マルチバイト文字列のケースを変換するために使用されます。その構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$mode</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$ str :変換する文字列。
$モード:モードを変換します。次のことができます。
MB_Case_upper :すべての文字を大文字に変換します。
MB_Case_lower :すべての文字を小文字に変換します。
MB_CASE_TITLE :各単語の最初の文字を大文字(タイトルモード)に変換します。
$エンコード:オプションのパラメーター、文字エンコードを指定します。空の場合、デフォルトは内部文字エンコード(通常はUTF-8)です。
文字列内のすべての文字を大文字に変換するには、 mb_case_upperモードを使用できます。すべてを大文字に変換したい文字列があるとします。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// サンプル文字列</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, こんにちは,PHP"</span></span><span>;
</span><span><span class="hljs-comment">// 使用 mb_convert_case 大文字に変換します</span></span><span>
</span><span><span class="hljs-variable">$upper_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$upper_str</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span>HELLO, こんにちは,PHP
</span></span>
出力の結果から、文字列の英語の部分が大文字に正常に変換されていることがわかります。漢字はマルチバイトエンコーディングで症例の区別を持っていないため、変更されていません。
文字列内のすべての文字を小文字に変換します
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, こんにちは,PHP"</span></span><span>;
</span><span><span class="hljs-variable">$lower_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_LOWER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$lower_str</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span>hello, こんにちは,php
</span></span>
文字列をタイトルケースに変換します(最初の文字大文字化)
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello world, こんにちは,php"</span></span><span>;
</span><span><span class="hljs-variable">$title_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_TITLE, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title_str</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span><span class="hljs-attribute">Hello</span></span><span> World, こんにちは,Php
</span></span>
MB_CONVERT_CASE関数は、指定された文字エンコードもサポートしており、指定されていない場合は、現在の内部文字エンコードを使用します。一般的なエンコーディング形式には、UTF-8 、 GB2312 、 BIG5などが含まれます。変換の精度を確保するには、非ラチン文字セットを含む文字列を処理するときにエンコード形式を明示的に指定することをお勧めします。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"こんにちは,world"</span></span><span>;
</span><span><span class="hljs-variable">$upper_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$upper_str</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span>こんにちは,WORLD
</span></span>
MB_CONVERT_CASE関数は、アルファベット文字のみに影響し、その他のシンボル、数字などは影響を受けません。
入力された文字列に異なる文字エンコーディングが含まれている場合は、文字通りの文字を避けるために、正しい$エンコーディングパラメーターを渡すことをお勧めします。
PHPでは、 MB_CONVERT_CASEはMBSTRING拡張機能の一部であり、PHP環境がそれを有効にしていることを確認する必要があります。
MB_Convert_Case関数を介して、PHP開発者は、マルチバイト文字列の文字部分を大文字、すべて小文字またはタイトル形式に簡単に変換できます。従来の文字列ケース変換機能と比較して、 MB_CONVERT_CASEはより優れたマルチバイト文字サポートを提供します。これは、中国や日本語などの非ラチン文字セットを含む文字列を処理するのに特に適しています。
MB_CONVERT_CASEの使用法をマスターすると、文字列の形式をより正確に制御するのに役立つだけでなく、国際的なテキストを処理する能力を向上させることもできます。