:: reverse dictionary ::
※ソースファイルについて
指定した文字列が最初に現れる位置を求めるには、strpos 関数を使います。
$str = "WindowsサーバとLinuxサーバ"; $pos1 = strpos($str, "サーバ"); $pos2 = strpos($str, "サーバ", 16);
$pos1 は 7 、pos2 は 20 になります。
※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);
$pos1 は 7 、pos2 は 16 になります。
(ソースファイルの文字コードが "EUC-JP" の場合)
※1番目の "サ" は 8 文字目、2番目の "サ" は 17 文字目
intstrpos(strings,stringsk)intstrpos(strings,stringsk,inti)
文字列 s から検索文字列 sk が最初に現れる位置を求めます。
検索文字列 sk が見つかった場合、その位置から最後までの文字列を返します。 検索文字列 sk が見つからなかった場合は false を返します。
$str = "WindowsサーバとLinuxサーバ"; $pos = strpos($str, "Solarisサーバ");
$pos は false になります。
インデックス i を省略すると、文字列 s の最初から検索を開始します。
インデックス i を指定すると、そのインデックスから検索を開始します。
インデックス i には、0 以上の値を指定できます。
マイナスの値を指定した場合は、警告メッセージを表示します。
Warning: strpos(): Offset not contained in string
(訳) オフセットが文字列に含まれていません。
s … 対象の文字列
sk … 検索文字列
i … 検索を開始する文字のインデックス
・検索文字列 sk が見つかった … その先頭文字のインデックス
・検索文字列 sk が見つからなかった … false
PHP3 、PHP4 、PHP5
intmb_strpos(strings,stringsk)intmb_strpos(strings,stringsk,inti)intmb_strpos(strings,stringsk,inti,stringe)
文字列 s から検索文字列 sk が最初に現れる位置を求めます。
検索文字列 sk が見つかった場合、その位置から最後までの文字列を返します。 検索文字列 sk が見つからなかった場合は false を返します。
$str = "WindowsサーバとLinuxサーバ"; $pos = mb_strpos($str, "Solarisサーバ", 0, "EUC-JP");
$pos は false になります。
インデックス i を省略すると、文字列 s の最初から検索を開始します。
インデックス i を指定すると、そのインデックスから検索を開始します。
インデックス i には、0 以上の値を指定できます。
マイナスの値を指定した場合は、警告メッセージを表示します。
Warning: mb_strpos(): Offset is out of range
(訳) オフセットが範囲外にあります。
文字エンコーディング e を指定することにより、そのエンコーディングで位置を求めます。 文字エンコーディング e を省略した場合は、PHP の内部エンコーディングを使用します。
内部エンコーディングは通常、php.ini の mbstring.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 |
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com