今回は「文字列の一部を取得する」方法を紹介します。
文字列の一部を取得すると言われてもなんのことだかよくわらないと思いますので
まずはサンプルプログラムをみてみましょう。
<?php $moji = "おはよう"; $moji2 = mb_substr($moji,0,2); // $mojiの0文字目から2文字を$moji2とする echo $moji2;
mb_substrも前回紹介したmb_strlen同様はPHP側であらかじめ定義された文字列関数で、
requireなどをしなくても使えます。
substrはSubstring(=部分文字列)の略です。
mb_substr(元になる文字列,開始位置,取得したい文字数);
という形式で利用し、返り値(かえりち)として文字列が返ってきます。
「おはよう」は4文字ですが、最初の「お」はプログラミング界では0文字目
ということになります。
従って、mb_substr($moji,0,2);は「おはよう」の0文字目から2文字を取得して
という命令になります。つまり、「お」と「は」になります。
そして、$moji2には「おは」という文字が入っていることになります。
以下の様なサンプルプログラムをみてみましょう。
<?php $moji = "隣の竹やぶに竹立てかけたのは、竹立てかけたかったから竹立てかけたのさ"; $length = mb_strlen($moji); $moji2 = mb_substr($moji,5,$length); //mb_substr($moji,5,mb_strlen($moji)) でもOK echo $moji2;
例えば、ある文字列の6文字目から最後の文字までを取得したいとしましょう。
6文字目というのは分かっていますが、最後の文字が何文字目なのかがわかりません。
mb_substr($moji,5,ここがわからない);
という状況です。また、プログラミングでは1文字目を0と表すので
6文字目は5ということになります。(ややこしい)
そこで、前回学んだmb_strlenを使います。これを使うと、文字列の長さ=文字数
を取得することができます。
mb_substr($moji,5,mb_strlen($moji));
とすることで、6文字目から、この文字列の長さ分取得する
ということになり、6文字目以降の全ての文字を取得することができます。