PHP入門 | テキストと日付の操作 | テキストを扱う主な関数

プログラムを作るとき、意外に重要なのが「さまざまな値を操作する方法」である。これが分からないと、いろいろな場面で悩むことになる。まずは、テキストを操作する主な機能から紹介する。

テキストの長さを取得する

$変数 = strlen(テキスト);
$変数 = mb_strlen(テキスト);

テキストが何文字であるかを調べる。strlenは一般的な英数字テキストなどの1バイト文字について、mb_strlenは韓国語など1バイト文字ではない文字について文字数を確認し、整数値として返す。

$n = strlen('hello'); // $nは5になる。

テキストの位置を調べる

$変数 = strpos(対象テキスト, 検索文字, 開始位置);
$変数 = mb_strpos(対象テキスト, 検索文字, 開始位置, エンコーディング);

あるテキストの中に、検索したいテキストがある位置を調べるものである。これも1バイト文字用のstrposと、それ以外の文字用のmb_strposの2種類が用意されている。

1番目の引数には検索対象のテキストを、2番目には検索するテキストをそれぞれ指定する。この2つは必須である。3番目は何文字目から検索するかを数値で指定する。4番目はテキストエンコーディングを指定する。

英数字検索であるstrposは、最初の2つだけを指定して呼び出せば通常は十分だろう。しかし、韓国語などを検索するmb_strposの場合は、4つすべてを指定するのが基本だと考えておく。特に4番目のエンコーディングを正しく指定しないと、うまく検索できないことがある。

戻り値は何文字目かを示す整数であり、最初は0になる。見つからない場合はfalseが返される。

$n = strpos("Hello","e",0,"UTF-8"); // $nは1になる。

テキストの一部を抽出する

$変数 = substr(テキスト, 開始位置, 長さ);
$変数 = mb_substr(テキスト, 開始位置, 長さ, エンコーディング);

テキストの中から指定した部分のテキストを返す。例えば、"Hello PHP World"というテキストの中から"PHP"だけを抽出したい場合に使用する。

1番目の引数には抽出元のテキストを指定し、2番目と3番目には抽出する位置と文字数をそれぞれ指定する。位置は最初が0から始まる。また、韓国語などの場合はmb_substrで必ずエンコーディングを指定する。

$s = substr("Hello",2,2); // $sは"ll"になる。

テキストを置換する

$変数 = str_replace(検索文字, 置換文字, テキスト);

テキスト置換には、str_replaceという便利な関数が用意されている。検索文字と置換したい文字、そして対象となるテキストを指定するだけで、置換されたテキストが返される。これは韓国語用の関数が別に用意されているわけではなく、すべてこの1つで実行する。

この関数は、3番目のテキストに含まれる検索文字をすべて置換文字に置き換えたものを返す。

$s = str_replace("java","PHP","Hello java!"); // $sは"Hello PHP!"になる。