PHP の標準関数を目的別に調べることができる辞典

ホーム > PHP 標準関数逆引き辞典 > 文字列 > 指定した文字列が最初に現れる位置を求める

PHP 標準関数逆引き辞典

:: reverse dictionary ::

文字列

※ソースファイルについて


指定した文字列が最初に現れる位置を求める

指定した文字列が最初に現れる位置を求めるには、strpos 関数を使います。

$str = "WindowsサーバとLinuxサーバ";
$pos1 = strpos($str, "サーバ");
$pos2 = strpos($str, "サーバ", 16);

ソースファイル

$pos17pos220 になります。

※1番目の "サ"8 バイト目、2番目の "サ"21 バイト目


マルチバイト文字列の場合は、mb_strpos 関数を使います。

define("ENCODING", "EUC-JP");

$str = "WindowsサーバとLinuxサーバ";
$pos1 = mb_strpos($str, "サーバ", 0, ENCODING);
$pos2 = mb_strpos($str, "サーバ", 10, ENCODING);

ソースファイル

$pos17pos216 になります。
(ソースファイルの文字コードが "EUC-JP" の場合)

※1番目の "サ"8 文字目、2番目の "サ"17 文字目

▼ 関数

int strpos(string s, string sk)
int strpos(string s, string sk, int i)

文字列 s から検索文字列 sk が最初に現れる位置を求めます。

検索文字列 sk が見つかった場合、その位置から最後までの文字列を返します。 検索文字列 sk が見つからなかった場合は false を返します。

$str = "WindowsサーバとLinuxサーバ";
$pos = strpos($str, "Solarisサーバ");

ソースファイル

$posfalse になります。


インデックス i を省略すると、文字列 s の最初から検索を開始します。

インデックス i を指定すると、そのインデックスから検索を開始します。
インデックス i には、0 以上の値を指定できます。

マイナスの値を指定した場合は、警告メッセージを表示します。

Warning: strpos(): Offset not contained in string

(訳) オフセットが文字列に含まれていません。

●引数

s … 対象の文字列
sk … 検索文字列
i … 検索を開始する文字のインデックス

●戻り値

・検索文字列 sk が見つかった … その先頭文字のインデックス
・検索文字列 sk が見つからなかった … false

●バージョン

PHP3 、PHP4 、PHP5

▼ 関数

int mb_strpos(string s, string sk)
int mb_strpos(string s, string sk, int i)
int mb_strpos(string s, string sk, int i, string e)

文字列 s から検索文字列 sk が最初に現れる位置を求めます。

検索文字列 sk が見つかった場合、その位置から最後までの文字列を返します。 検索文字列 sk が見つからなかった場合は false を返します。

$str = "WindowsサーバとLinuxサーバ";
$pos = mb_strpos($str, "Solarisサーバ", 0, "EUC-JP");

ソースファイル

$posfalse になります。


インデックス i を省略すると、文字列 s の最初から検索を開始します。

インデックス i を指定すると、そのインデックスから検索を開始します。
インデックス i には、0 以上の値を指定できます。

マイナスの値を指定した場合は、警告メッセージを表示します。

Warning: mb_strpos(): Offset is out of range

(訳) オフセットが範囲外にあります。


文字エンコーディング e を指定することにより、そのエンコーディングで位置を求めます。 文字エンコーディング e を省略した場合は、PHP の内部エンコーディングを使用します。

内部エンコーディングは通常、php.inimbstring.internal_encoding に設定されています。 設定されていない場合は、"ISO-8859-1" になります。

●引数

s … 対象の文字列
sk … 検索文字列
i … 検索を開始する文字のインデックス
e … 文字エンコーディング

●戻り値

・検索文字列 sk が見つかった … その先頭文字のインデックス
・検索文字列 sk が見つからなかった … false

●バージョン

PHP4(4.0.6 以降)、PHP5

●重要

文字エンコーディングは、文字列の文字コードに合わせる必要があります。(合わせない場合は、正確な文字数を求められません)

主な文字コードと文字エンコーディングの対応は、次のようになります。

文字コード 文字エンコーディング
EUC-JP EUC-JP
Shift-JIS SJIS
UTF-8 UTF-8

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

文字列 - string -


ホーム > PHP 標準関数逆引き辞典 > 文字列 > 指定した文字列が最初に現れる位置を求める

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com