読み込み中...

PHPで文字列をスマートに検索する5つの実用的な方法

PHPで文字列を検索する方法を解説する記事のサムネイル PHP
この記事は約4分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、PHPで文字列を効率的に検索する方法を理解し、自分のコードに組み込むことができるようになります。

●PHPにおける文字列検索の基本

PHPには文字列を検索するための関数がいくつか用意されています。

この記事ではその中でも特に多用される関数である「strpos」関数の使い方について説明します。

○strpos関数の基本

strpos関数は、ある文字列が別の文字列内に存在するかを調べるために使用されます。

存在する場合は、その文字列が開始する位置を返します。

存在しない場合は、FALSEを返します。

●PHPで文字列検索を行う方法

それでは具体的にPHPで文字列検索を行う方法を見ていきましょう。

下記のサンプルコードを参考にしてください。

○サンプルコード1:strpos関数を用いた文字列検索

このコードは、$text内に$findが存在するかを調べます。

存在する場合、その位置を返し、存在しない場合は”文字列が見つかりません。”と出力します。

<?php
$text = "Hello, World!";
$find = "World";

$position = strpos($text, $find);
if ($position === false) {
    echo "文字列が見つかりません。";
} else {
    echo "見つかった文字列の位置は" . $position . "です。";
}
?>

○サンプルコード2:stripos関数を用いた大文字小文字を区別しない検索

このコードは、大文字小文字を区別せずに$text内に$findが存在するかを調べます。

<?php
$text = "Hello, World!";
$find = "world";

$position = stripos($text, $find);
if ($position === false) {
    echo "文字列が見つかりません。";
} else {
    echo "見つかった文字列の位置は" . $position . "です。";
}
?>

○サンプルコード3:substr_count関数を用いた特定の文字列が何回出現するかを検索

このコードは、$text内に$findが何回出現するかをカウントします。

<?php
$text = "Hello, World! Hello, again!";
$find = "Hello";

$count = substr_count($text, $find);
echo "文字列は" . $count . "回出現します。";
?>

●文字列検索の応用例

文字列検索は単体で使うだけでなく、他の関数と組み合わせて応用することも可能です。

○サンプルコード4:文字列の一部を取り出す

このコードは、$text内に$findが存在する場合、その位置から最後までの部分文字列を取り出します。

<?php
$text = "Hello, World!";
$find = "World";

$position = strpos($text, $find);
if ($position !== false) {
    $substring = substr($text, $position);
    echo "取り出した文字列は" . $substring . "です。";
}
?>

○サンプルコード5:文字列を置換する

このコードは、$text内の$findを$replaceに置換します。

<?php
$text = "Hello, World!";
$find = "World";
$replace = "PHP";

$new_text = str_replace($find, $replace, $text);
echo $new_text;
?>

●注意点と対処法

strpos関数やstripos関数は、見つかった場合はその位置を返すため、文字列が最初から見つかる場合は0を返します。

しかし、PHPでは0はFALSEと同等なので、見つからないと誤解されることがあります。

これを防ぐためには、「===」演算子を使用して厳密な比較を行いましょう。

まとめ

以上がPHPで文字列検索を行う基本的な方法とその応用例です。

これらを組み合わせて利用することで、より高度な文字列操作が可能になります。

ここで紹介した関数をぜひ試してみて、PHPの力を体験してみてください。