カテゴリ: PHP 更新日: 2025/05/29

PHPの文字列操作(連結・置換・フォーマット)を完全ガイド!初心者でもわかる文字列の基本

PHP の文字列操作(連結・置換・フォーマット)
PHP の文字列操作(連結・置換・フォーマット)

新人と先輩の会話形式で理解しよう

新人

「PHPで文字列を扱う方法を知りたいのですが、基本から教えてもらえますか?」

先輩

「PHPでは文字列を扱う方法がいくつかあります。まずは基本的な考え方から説明していきますね。」

新人

「お願いします!」

-

1. PHPの文字列とは?

1. PHPの文字列とは?
1. PHPの文字列とは?

PHPの文字列は、テキストデータを表すためのデータ型の一つです。プログラム内で文字や文章を扱うときに使用します。

例えば、「Hello, World!」のようなテキストや、ユーザーが入力した情報を処理するときに使われます。

2. PHPでの文字列の扱い方(シングルクォートとダブルクォートの違い)

2. PHPでの文字列の扱い方(シングルクォートとダブルクォートの違い)
2. PHPでの文字列の扱い方(シングルクォートとダブルクォートの違い)

PHPでは、文字列をシングルクォート(')またはダブルクォート(")で囲んで表します。

シングルクォートとダブルクォートの主な違いは、変数の展開ができるかどうかです。

シングルクォート(')を使った場合

シングルクォートでは、文字列の中で変数をそのままの文字として扱います。


$name = '太郎';
echo 'こんにちは、$name さん';

上記のコードを実行すると、出力は以下のようになります。


こんにちは、$name さん

ダブルクォート(")を使った場合

ダブルクォートでは、変数が文字列内で展開され、実際の値に置き換わります。


$name = '太郎';
echo "こんにちは、$name さん";

この場合、変数の値が展開され、以下のように表示されます。


こんにちは、太郎 さん

3. 文字列の連結方法(`.` を使った連結)

3. 文字列の連結方法(`.` を使った連結)
3. 文字列の連結方法(`.` を使った連結)

PHPでは、文字列を連結するときに.(ドット演算子)を使います。

例えば、次のように2つの文字列を連結できます。


$first = 'こんにちは、';
$second = '太郎さん';
$message = $first . $second;
echo $message;

上記のコードを実行すると、以下のように表示されます。


こんにちは、太郎さん

複数の文字列を連結する

複数の文字列を連結するときも、. を使います。


$greeting = 'こんにちは';
$name = '太郎';
$end = 'さん';
$message = $greeting . '、' . $name . $end . '!';
echo $message;

この場合の出力結果は次のようになります。


こんにちは、太郎さん!

代入しながら連結する(.= 演算子)

連結しながら代入する場合、.= 演算子を使います。


$message = 'こんにちは';
$message .= '、太郎さん!';
echo $message;

このコードの実行結果は以下の通りです。


こんにちは、太郎さん!

4. 文字列の置換(str_replace を使った文字の置き換え)

4. 文字列の置換(str_replace を使った文字の置き換え)
4. 文字列の置換(str_replace を使った文字の置き換え)

PHPでは、特定の文字列を別の文字列に置き換える場合にstr_replace関数を使います。

例えば、「こんにちは、太郎さん!」という文章の「太郎」を「花子」に変更する場合、以下のように書きます。


$text = 'こんにちは、太郎さん!';
$new_text = str_replace('太郎', '花子', $text);
echo $new_text;

上記のコードを実行すると、次のように表示されます。


こんにちは、花子さん!

複数の単語を一度に置換する

str_replaceは、配列を使って複数の単語を一度に置換することもできます。


$text = '今日は晴れですね。とても暑いです。';
$new_text = str_replace(['晴れ', '暑い'], ['雨', '涼しい'], $text);
echo $new_text;

このコードの実行結果は以下の通りです。


今日は雨ですね。とても涼しいです。
-

5. 文字列の検索(strpos を使った文字の検索)

5. 文字列の検索(strpos を使った文字の検索)
5. 文字列の検索(strpos を使った文字の検索)

PHPでは、特定の文字列が含まれているかどうかを調べるためにstrpos関数を使います。

例えば、「PHPは便利な言語です。」という文章の中に「便利」という単語が含まれているかどうかを確認するには、次のように書きます。


$text = 'PHPは便利な言語です。';
$position = strpos($text, '便利');

if ($position !== false) {
    echo '「便利」という単語は ' . $position . ' 文字目にあります。';
} else {
    echo '「便利」という単語は含まれていません。';
}

上記のコードを実行すると、次のように表示されます。


「便利」という単語は 3 文字目にあります。

特定の単語が含まれているか判定する

strposを使って、文字列が含まれているかどうかを判定することもできます。


$text = 'PHPはとても簡単な言語です。';
if (strpos($text, '簡単') !== false) {
    echo 'この文章には「簡単」が含まれています。';
} else {
    echo 'この文章には「簡単」が含まれていません。';
}

このコードの実行結果は以下の通りです。


この文章には「簡単」が含まれています。

6. 部分文字列の取得(substr を使った一部の文字列の取り出し)

6. 部分文字列の取得(substr を使った一部の文字列の取り出し)
6. 部分文字列の取得(substr を使った一部の文字列の取り出し)

PHPでは、文字列の一部分を取り出すためにsubstr関数を使います。

例えば、「こんにちは、世界!」という文字列の最初の5文字を取得する場合、次のように書きます。


$text = 'こんにちは、世界!';
$substring = substr($text, 0, 5);
echo $substring;

このコードを実行すると、次のように表示されます。


こんにちは

文字列の末尾から取得する

負の値を指定すると、文字列の末尾から取得できます。


$text = 'こんにちは、世界!';
$substring = substr($text, -3);
echo $substring;

このコードの実行結果は以下の通りです。


世界!

特定の範囲を取得する

開始位置と長さを指定して、一部分だけを取得することもできます。


$text = 'プログラミングは楽しい!';
$substring = substr($text, 6, 4);
echo $substring;

このコードを実行すると、次のように表示されます。


ミング

7. 文字列のフォーマット(printfやsprintfを使った整形)

7. 文字列のフォーマット(printfやsprintfを使った整形)
7. 文字列のフォーマット(printfやsprintfを使った整形)

PHPでは、数値や文字列を特定のフォーマットに整形するためにprintfsprintf関数を使います。

printfを使った文字列フォーマット

printf関数を使うと、フォーマットを指定して文字列を出力できます。


$price = 1500;
printf("商品の価格は %d 円です。", $price);

このコードを実行すると、以下のように表示されます。


商品の価格は 1500 円です。

また、小数点以下の桁数を指定することもできます。


$rate = 3.14159;
printf("円周率は %.2f です。", $rate);

このコードを実行すると、以下のように表示されます。


円周率は 3.14 です。

sprintfを使った文字列の作成

sprintfは、printfと同じフォーマット指定が使えますが、文字列を返す点が異なります。


$name = '太郎';
$age = 25;
$message = sprintf("私の名前は %s で、%d 歳です。", $name, $age);
echo $message;

このコードを実行すると、以下のように表示されます。


私の名前は 太郎 で、25 歳です。

8. 文字列のトリミング(trim を使った余分なスペースの削除)

8. 文字列のトリミング(trim を使った余分なスペースの削除)
8. 文字列のトリミング(trim を使った余分なスペースの削除)

PHPでは、文字列の前後にある不要な空白を削除するためにtrim関数を使います。

trimを使った空白の削除

以下の例では、文字列の前後の空白を削除しています。


$text = "  こんにちは  ";
$trimmed_text = trim($text);
echo "[$trimmed_text]";

このコードの実行結果は以下の通りです。


[こんにちは]

ltrimとrtrimを使った部分的なトリミング

前後どちらかの空白だけを削除するには、ltrim(左側)またはrtrim(右側)を使います。


$text = "  こんにちは  ";
$left_trimmed = ltrim($text);
$right_trimmed = rtrim($text);

echo "[$left_trimmed]\n";
echo "[$right_trimmed]";

このコードの実行結果は以下のようになります。


[こんにちは  ]
[  こんにちは]

9. 文字列操作の活用例(ユーザー入力の整形、ログの出力など)

9. 文字列操作の活用例(ユーザー入力の整形、ログの出力など)
9. 文字列操作の活用例(ユーザー入力の整形、ログの出力など)

文字列操作は、実際の開発においてさまざまな場面で活用されます。

ユーザー入力の整形

ユーザーが入力したデータを整形する場合、trimstr_replaceを活用できます。


$input = "  こんにちは!  ";
$clean_input = trim($input);
echo $clean_input;

このコードを実行すると、次のように表示されます。


こんにちは!

ログの出力

エラーログやアクセスログを整形して記録することも重要です。


$date = date("Y-m-d H:i:s");
$message = "ユーザーがログインしました。";
$log = sprintf("[%s] %s", $date, $message);
file_put_contents("log.txt", $log . PHP_EOL, FILE_APPEND);

上記のコードを実行すると、log.txtに次のようなログが記録されます。


[2025-02-28 14:30:00] ユーザーがログインしました。

データの一部をマスキングする

パスワードや個人情報を部分的にマスキングすることも可能です。


$email = "example@example.com";
$masked_email = substr_replace($email, "****", 3, 4);
echo $masked_email;

このコードを実行すると、次のように表示されます。


exa****@example.com
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPとは?初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-