導入
Webアプリは文字列だらけです。名前を大文字にする、一部を置き換える、カンマ区切りを分解する――こうした加工に、PHP は豊富な文字列関数を用意しています。
説明
代表的な文字列関数を見てみましょう。
<?php
$s = "Hello, World";
echo strlen($s), "\n"; // 12(文字数=バイト数)
echo strtoupper($s), "\n"; // HELLO, WORLD(大文字に)
echo str_replace("World", "PHP", $s), "\n"; // Hello, PHP(置き換え)
$csv = "りんご,みかん,ぶどう";
$parts = explode(",", $csv); // カンマで分割 → 配列
echo $parts[1], "\n"; // みかん
echo implode(" / ", $parts), "\n"; // りんご / みかん / ぶどう
explode(区切り, 文字列) は文字列を配列に分解し、implode(区切り, 配列) は配列を文字列に結合します(第3章で使った関数です)。この2つは、CSV や入力値の処理でとてもよく使います。
trim() は前後の空白や改行を取り除く関数で、入力値の掃除に欠かせません。
<?php
$input = " 田中さん ";
echo "[" . trim($input) . "]\n"; // [田中さん](前後の空白が消える)
補足:
strlen()は「バイト数」を数えるため、日本語1文字は3としてカウントされます。日本語の文字数を正しく数えるにはmb_strlen()を使います(環境により使えないことがあります)。
やってみよう
$s や $csv の中身を書き換えて、置き換え・分割・結合の結果がどう変わるか確かめましょう。
演習
"apple,banana,cherry" を explode でカンマ分割し、foreach で1行ずつ「- apple」のように先頭に - を付けて表示してください。
ヒント1を見る
$fruits = explode(",", "apple,banana,cherry");
ヒント2を見る
foreach ($fruits as $f) { echo "- {$f}\n"; }