今日の人気記事

  1. HTML内でPHPスクリプトを実行 - 埋め込み
  2. PHP + Apacheのインストール - Linux環境 - CentOS
  3. PHPのダウンロードとインストール - Windows環境
  4. PHP + Apache 環境の構築
  5. 外部コマンドを実行 - exec()、system()

文字列が最初に現れる場所を取得 - strpos()、mb_strpos()

スポンサーリンク

Webプログラミング言語PHPで、文字列内に指定した文字列が最初に現れる場所を取得するstrpos関数、マルチバイト版のmb_strpos関数を紹介します。

strpos関数

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
文字列内に指定した文字列が最初に現れる場所を取得します。
引数
$haystack
検索対象の文字列を指定します。
$needle
検索する文字列を指定します。
$offset
文字列検索開始位置を指定します。省略した場合は文字列の最初「0」から検索します。
返り値
指定した文字列が見つかった場合は最初に現れる場所を、
失敗した場合は、falseを返します。

ref. » 文字列が最後に現れる場所を取得 - strrpos、mb_strrpos

スポンサーリンク

サンプルコード

文字列内から指定した文字列が最初に現れる場所を取得するサンプルコードです。

strpos( 検索対象の文字列, 検索する文字列 )
<?php
/* 文字列が最初に現れる場所を取得 */
$haystack = "abcdefgd";
var_dump(strpos($haystack, "d"));
var_dump(strpos($haystack, "x"));
?>

実行結果です。文字列内から指定した文字列が最初に現れる場所が取得されています。失敗した場合は、falseを返します。日本語を検索する場合は、マルチバイト版のmb_strpos関数を使いましょう(後述)。

int(3)
bool(false)

mb_strpos関数

int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding ]] )
文字列内に指定した文字列が最初に現れる場所を取得します。
strpos関数のマルチバイト版です。
引数
$haystack
検索対象の文字列を指定します。
$needle
検索する文字列を指定します。
$offset
文字列検索開始位置を指定します。省略した場合は文字列の最初「0」から検索します。
$encoding
エンコーディングを指定します。
エンコーディングの指定を省略した場合は、 内部エンコーディングを使用します。
返り値
指定した文字列が見つかった場合は最初に現れる場所を、失敗した場合は、falseを返します。

内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring

サンプルコード

文字列内から指定した文字列が最初に現れる場所を取得するマルチバイト版のサンプルコードです。

mb_strpos( 検索対象の文字列, 検索する文字列 )
<?php
/* マルチバイト文字列が最初に現れる場所を取得 */
$haystack = "日本語の文字列を検索。日本語検索。";
var_dump(mb_strpos($haystack, "文"));
var_dump(mb_strpos($haystack, "検"));
var_dump(mb_strpos($haystack, "国"));
?>

実行結果です。日本語の文字列内から指定した文字列が最初に現れる場所が取得されています。失敗した場合は、falseを返します。

int(4)
int(8)
bool(false)
スポンサーリンク