第6章 文字列処理

文字列の作成と表示

PHPでは、文字列はシングルクオート('')またはダブルクオート("")で囲むことで作成できます。

// 文字列はシングルクオート(')またはダブルクオート(")で囲む
$str1 = 'Hello, ';
$str2 = "World!";
// 文字列の表示
echo $str1;
echo $str2;
// 出力:Hello, World!


文字列の連結

PHPでは、"."演算子を使用して2つの文字列を連結できます。

$str1 = 'Hello, ';
$str2 = 'World!';
// 文字列の連結
$message = $str1 . $str2;
echo $message;
// 出力:Hello, World!


文字列の長さの取得

strlen関数は文字列の長さ(文字数)を返します。

$str = 'Hello, World!';
// 文字列の長さの取得
echo strlen($str);
// 出力:13


文字列の置換

str_replace関数は、文字列内の指定した部分を置換します。

$str = 'Hello, World!';
// 文字列の置換
$newStr = str_replace('World', 'PHP', $str);
echo $newStr;
// 出力:Hello, PHP!


文字列の分割と結合

explode関数で文字列を特定の区切り文字で分割し、implode関数で文字列を特定の区切り文字で結合します。

$str = 'Hello, World!';
// 文字列の分割
$words = explode(' ', $str);
print_r($words);
// 出力:Array ( [0] => Hello, [1] => World! )
// 文字列の結合
$newStr = implode(' ', $words);
echo $newStr;
// 出力:Hello, World!


文字列の検索と取り出し

strpos関数は指定した文字列が最初に現れる位置を返し、substr関数は指定した部分文字列を返します。

$str = 'Hello, World!';
// 文字列の検索
$pos = strpos($str, 'World');
echo $pos;
// 出力:7
// 文字列の取り出し
$word = substr($str, 7, 5);
echo $word;
// 出力:World


文字列の比較

strcasecmp関数は大文字と小文字を区別せずに2つの文字列を比較します。同じ場合は0を返します。

$str1 = 'Hello';
$str2 = 'hello';
// 文字列の比較
if (strcasecmp($str1, $str2) == 0) {
    echo '同じです';
} else {
    echo '異なります';
}
// 出力:同じです


文字列を逆順にする

strrev関数は、与えられた文字列を逆順にして返す関数です。

$str = "Hello, World!";
$reversedStr = strrev($str);
echo $reversedStr; // 出力: "!dlroW ,olleH"


文字列の大文字、小文字変換

strtoupper関数は文字列を大文字に、strtolower関数は文字列を小文字に変換します。

$str = 'Hello, World!';
// 大文字変換
echo strtoupper($str);
// 出力:HELLO, WORLD!
// 小文字変換
echo strtolower($str);
// 出力:hello, world!


文字列のトリミング

trim関数は文字列の先頭と末尾の空白を削除します。また、ltrim関数は先頭を、rtrim関数は末尾の空白を削除します。

$str = '  Hello, World!  ';
// 文字列のトリミング
echo trim($str);
// 出力:Hello, World!

// 文字列の先頭をトリミング
echo ltrim($str);
// 出力:Hello, World!  

// 文字列の末尾をトリミング
echo rtrim($str);
// 出力:  Hello, World!


文字列のフォーマット

sprintf関数は指定したフォーマットで文字列を生成します。%sは文字列のプレースホルダーとなります。

$name = 'World';
// 文字列のフォーマット
$message = sprintf('Hello, %s!', $name);
echo $message;
// 出力:Hello, World!


特殊文字のエスケープ

addslashes関数は文字列中の特殊文字(シングルクオート、ダブルクオート、バックスラッシュなど)をエスケープ(前にバックスラッシュを追加)します。

if (copy('source.txt', 'destination.txt')) {
    echo 'ファイルをコピーしました。';
} else {
    echo 'ファイルをコピーできませんでした。';
}


練習問題1.

次の文字列 "I love PHP!" から "PHP" を "JavaScript" に置き換えて出力してください。

$str = "I love PHP!";


練習問題2.

文字列を逆順にする関数を作成し、その関数を使って以下の文字列を逆順に表示してください。

$str = "PHP is greatest language.";


練習問題3.

文字列から特定の文字を検索し、その位置を表示するプログラムを作成してください。以下のような文字列と検索文字が与えられます。

$str = "Hello, World!";
$search = "World";