.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 8
.
<< Prev
文字列関数
« INDEX »
PHP 文法編
Next >>
文字列関数(分解と合成)
作成日:2006/05/10

1C.5.2 文字列関数(検索と置換)

検索
構文説明
int strpos
( string string,
  string search
[,int offset] )
int strrpos
( string string,
  string search
[,int offset] )

int stripos
( string string,
  string search
[,int offset] )

strpos()は文字列 string 中で、 文字列searchが最初に現れた位置を(0から始まる)数字で返します。 見つからない場合はFALSEを返します。

offsetが指定された場合、検索を開始するstring中の位置を指定することができます。 この場合でも返される位置は、string先頭からの相対位置となります。

一方、strrpos()は文字列searchが 最後に現れたる位置を返します (文字列末尾から検索します)。 これらの関数は大文字と小文字を区別します。

注意すべきは、(文字列の最初の位置を表す)戻り値0と、(見つからなかった事を表す)戻り値FALSEが 共にブールコンテキストでは偽となる点です。見つからなかった事を調べるには ===演算子 を使用します。

用例:
$string = '01234567890';
echo strpos($string, '0');   # 0 を表示 
echo strpos($string, '0',1); # 10 を表示

stripos()は大文字と小文字を区別しない事を除いてstrpos()と同じです。 この関数はPHP5.0から使用できます。

string strchr
( string string,
  string search )
string strrchr
( string string,
  string search )

string strstr
( string string,
  string search )
string stristr
( string string,
  string search )

strchr()は、文字列string 中で、文字列searchが 最初に現れる場所から文字列string の終わりまでを返します。 見つからない場合はFALSEを返します。

一方、strrchr()は文字列searchが 最後に現れる場所から文字列string の終わりまでを返します (文字列末尾から検索します)。

これらの関数は大文字と小文字を区別します。

用例:
$email = 'info@y2sunlight.com';
echo strstr($email, '@'); # @y2sunlight.com を表示 

strstr()はstrchr()と同じ機能を持った関数です。 stristr()は大文字と小文字を区別しない事を除いてstrstr()と同じです。



置換
構文説明
mixed str_replace
( mixed search,
  mixed replace,
  mixed subject
[,int &count] )

文字列subject中のsearchをreplaceで置換し、置換後の文字列を返します。

subjectが配列の場合、配列の各要素に対して置換が行われ、配列を返します。

searchとreplace を配列にした場合、各(search と replace)の組に対して順に置換を実行します。 replaceの要素がsearchより少ない場合は、空の文字列('')で置換します。 また、replaceが文字列でsearchが配列の場合は、各searchに同じreplaceが使用されます。

countを指定した場合、(参照渡しにより)置換回数を取得する事ができます。 この引数はPHP5.0以降で利用できます。

正規表現を使用した置換にはereg_replace() または preg_replace()を使用します。

用例:HTMLの特殊文字を実体参照に変換
$lines = str_replace(array( '>' ,'<' ),
                     array( '&gt;','&lt;'),
                     array( "<b>bold</b>","<i>italic</i>"));
string strtr
( string string,
  string from,
  string to )
string strtr
( string str,
  array trans )

文字列 string を走査し、from に含まれる文字が見つかると、 その文字を to の中で対応する文字に置き換え、 その結果を返します。

from と to の 長さが異なる場合、長い方の余分な文字は無視されます。

用例:
$text = "ABCDEFGHIJKLMN";
echo strtr($text, "AGM", "agm"); // 'aBCDEFgHIJKLmN'を表示します

第2形式のstrtr()は、二番目の引数に配列を指定します。 配列は「検索文字列 -> 置換文字列」の組を指定します。 strtr() は、最も長くマッチする文字列で置換し、 既に置換されている部分文字列については再度置換を行いません。

用例:
$text = "ABCDEFGHIJKLMN";
$trans = array("A"=>"a","G"=>"g","M"=>"m");
echo strtr($text, $trans); // 'aBCDEFgHIJKLmN'を表示します

$text = "<a href='test'>Test</a>";
$trns = array("<"=>"&lt;",">"=>"&gt;");
echo strtr($text, $trns);  // HTML文字エンティティに変換
<< Prev
文字列関数
« INDEX »>
Page Top
Next >>
文字列関数(分解と合成)

.