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( '>','<'),
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("<"=>"<",">"=>">");
echo strtr($text, $trns); // HTML文字エンティティに変換
|
