現在の位置: ホーム> 最新記事一覧> MB_STRISTを使用して、文字列内の最初のサブストリングを見つけます

MB_STRISTを使用して、文字列内の最初のサブストリングを見つけます

gitbox 2025-05-26

PHPで文字列を処理する場合、多くの場合、サブストリングが別の文字列に存在するかどうかを調べる必要があります。マルチバイト文字(中国語、日本、韓国など)を含む文字列の場合、通常の文字列関数( STRSTRSTRPOSなど)を使用すると、文字化けされたコードまたは認識エラーが発生する場合があります。現時点では、マルチバイトセーフ機能MB_STRISTを使用できます。

1。MB_STRISTとは何ですか?

MB_STRSTRは、PHP Multibyte String Extension(MBString)によって提供される関数であり、文字列で初めて表示されるサブストリングを見つけます。 Strristに似ていますが、マルチバイトエンコードをサポートし、デフォルトでUTF-8を使用します。

関数定義は次のとおりです。

 mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false
  • $ haystack :検索する元の文字列。

  • $針:見つかるサブストリング。

  • $ before_needle (optional): trueの場合は、針の前に部分を返します。

  • $エンコード(オプション):文字エンコード、デフォルトは内部エンコード(通常はUTF-8)です。

  • 戻り値:見つかった場合は、残りの文字列(またはプレフィックスパーツ)を返し、見つかった場合はfalseを返します。

2。実用的な例

例1:最初のサブストリングが表示された後、コンテンツを見つけて返します

URLに特定のキーワードが含まれているかどうかを確認し、そのキーワードから始まる部分を取得するとします。

 <?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php");

if ($result !== false) {
    echo "サブストリングを見つけました,結果は次のとおりです:$result";
} else {
    echo "サブストリングは見つかりません";
}
?>

出力:

 サブストリングを見つけました,結果は次のとおりです:php/mbstring-guide

説明: MB_STRISTは、初めて登場した「PHP」を正常に見つけ、その部分から始まる文字列を返しました。

例2:サブストリングが表示される前にコンテンツを取得します

メインパスを取得するなど、サブストリングの前の部品をもっと気にすることがあります。

 <?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php", true);

if ($result !== false) {
    echo "キーワードの前の部分はです:$result";
} else {
    echo "サブストリングは見つかりません";
}
?>

出力:

 キーワードの前の部分はです:https://gitbox.net/docs/

3番目のパラメーターがtrueの場合、 MB_Stristrは針の前にコンテンツを返します。

例3:マルチバイト文字の処理(中国語)

中国語を含む文に対処するとします:

 <?php
$text = "いらっしゃいませgitbox.net,これは素晴らしいですPHPリソースライブラリ。";
$result = mb_stristr($text, "php");

if ($result !== false) {
    echo "見つかった:$result";
} else {
    echo "一致するコンテンツは見つかりませんでした";
}
?>

ここでの「PHP」はケースではない検索であるため、「PHP」でさえ正常に一致する可能性があることに注意してください。

3. STRPOSの違いは何ですか?

  • MB_STRSTRは症例に依存しませんが、 MB_STRPOSは症例に敏感です。

  • MB_STRSTRは、一致するサブストリングとその後続の部分を返し、 MB_STRPOSは場所を返します。

  • 最も重要な点は、 MB_STRISTがマルチバイト文字をサポートして中国の文字化けコードを避けることです。

4。概要

MB_STRSTRは、特にUTF-8エンコーディング環境で、マルチバイト文字列でサブストリングを見つけるタスクを処理するための強力なツールです。その構文はシンプルで機能的であり、文字列の重要な部分をすばやく見つけて抽出するのに最適です。

PHPアプリケーションを開発している場合、特に中国のコンテンツ、URLパス、またはユーザー入力を扱う場合は、 MB_STRISTを使用することを優先する必要があります。これにより、キャラクターの切り捨てや文字化けコードの問題を効果的に回避できます。