本文へスキップ
BecomeCoder

PHPコース · 第5章 文字列・実践・Webへ · レッスン16

文字列を操る

ブラウザで完結

導入

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"; }

実際に動かしてみよう

下のエディタにPHPを書いて「実行」を押すと、ブラウザ内で動く本物のPHP(php-wasm)で出力が表示されます。コードは必ず <?php で書き始めます。本文の例をそのまま試したり、書き換えたりしてみましょう(初回だけPHPの読み込みに少し時間がかかります)。

PHP — ブラウザ内で実行

ブラウザ内で動く本物のPHP(php-wasm / PHP 8.4)を読み込みます(初回のみ読み込みに少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。