libro
www.tuyano.com
初心者のためのPHPプログラミング入門

テキストと日時の操作 (1/5)

作成:2010-12-06 08:41
更新:2010-12-06 08:41

■テキストを扱う主な関数

プログラムを作成するとき、意外に重要なのが「さまざまな値を操作する方法」です。これがわからない為にあれこれ悩むことが多いものです。まずは、テキストを操作する主な機能から紹介していきましょう。

・テキストの長さを得る
$変数 = strlen( テキスト );
$変数 = mb_strlen( テキスト );
テキストが何文字かを調べるものです。strlenは、一般的な英語のテキスト(半角英数字)の文字数を、mb_strlenは日本語など1バイト文字でないものの文字数を調べて、整数の値で返します。

・テキストの位置を調べる
$変数 = strpos( 対象テキスト , 検索文字 , 開始位置 );
$変数 = mb_strpos( 対象テキスト , 検索文字 , 開始位置 , エンコード );
あるテキストの中に、検索したいテキストがある場所を調べるものです。これも、1バイト文字用のstrposと、それ以外の文字用のmb_strposの2種類が用意されています。

1つ目の引数には、調べる対処となるテキストを、2つ目には検索したいテキストをそれぞれ指定します。この2つは、必須です。3つ目には、何文字目から調べるかを数字で指定します。4つ目は、テキストのエンコード方式を指定します。

まぁ、半角英数字の検索(strpos)は、最初の2つだけで呼び出せば普通はOKでしょう。が、日本語などを検索させるmb_strposの場合、4つ全部を指定するのが基本と考えておきましょう。特に4つ目のエンコードを正しく指定していないと、うまく探し出せないことがあります。

返値は、何文字目にあったか(一番最初はゼロになります)を示す整数になります。見つからなかった場合にはfalseが返されます。

・テキストの一部を取り出す
$変数 = substr( テキスト , 開始位置 , 長さ );
$変数 = mb_substr( テキスト , 開始位置 , 長さ , エンコード );
あるテキストの中から指定した部分のテキストを返すものです。例えば"Hello PHP World"といったテキストの中から"PHP"だけ取り出す、というようなときに使います。

1つ目の引数には取り出す元のテキスト、2つ目、3つ目に取り出す位置と文字数(長さ)をそれぞれ指定します。位置は、一番最初がゼロから始まります。また日本語などの場合、mb_substrでは必ずエンコードを指定するようにしましょう。

・テキストを置換する
$変数 = str_replace( 検索文字 , 置換文字 , テキスト );
テキストの置換は、str_replaceという便利な関数が用意されています。検索文字と置換する文字、そして対象となるテキストを指定してやるだけで、置換済みのテキストが返されます。これは、日本語用の関数というのは用意されていません。すべてこれ1つで行います。

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

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※strlenの例
$n = strlen('hello'); // $nは5になる

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

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

※str_replaceの例
$s = str_replace("java","PHP","Hello java!";
// $sは"Hello PHP!"になる
※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る