頻繁に使うシーンがある文字列操作群の関数
2012-08-23 619 1582文字列の一部分を取り出すsubstr関数は使用するシーンが多いです。長い文章の最初だけを表示する時や、URLから一部分を切り出す時などなど。
<substr()関数 - 最後の2文字を取り出す>
<?php第2引数にマイナス値を入れれば最後からの文字が取得できます。先頭から2文字を取得する場合は正数を書けばOK。文字列が日本語の場合はmb_substr()を使用しないとバグが起きます。
$str = 'https://sample.jp/cate.php?id=06';
echo substr($str, -2);
//結果「06」が出力されます。
?>
<mb_substr()関数 - 文字数を指定して文字列を取り出す>
<?php上記の例は3文字目から2文字取得する場合の書き方です。mb_substr関数なので最後の引数に文字コードを指定します。「Shift_JIS」は「SJIS」「sjis」と略してもいいようです。
$str = '昨日は勝ちました。';
echo mb_substr($str,3,2,'utf8');
//結果「勝ち」が出力されます。
?>
次は、explode関数を使うケースを見てみましょう。これも便利な関数なので頻繁に使えるシーンがあります。
<explode()関数 - 指定の文字列で分割する>
<?phpexplode関数は文字列を文字列により分割するという動作になります。返り値は配列データになります。list関数とのコンビで使うと便利になるケースもあります。
$str = 'sample@docomo.ne.jp';
$data = explode('@',$str);
/*
下記のデータが返ります
$data[0] = 'sample';
$data[1] = 'docomo.ne.jp';
*/
?>
<explode()関数とlist()関数の連携>
<?phplist関数を使うと配列データを分かりやすい変数データに変換できます。CSVデータをHTMLで出力する際に重宝するテクニックですね。
$str = '0005<>山田<>1981/10/7<>富山<>自営業';
list($id,$name,$birth,$from,$job) = explode('<>',$str);
echo $id<br>$name<br>$birth<br>$from<br>$job;
/*
出力結果
0005
山田
1981/10/7
富山
自営業
*/
?>