phpのブログ

phpのブログ

独学PHPのメモとして使用しています

Amebaでブログを始めよう!

文字列データからある文字列を取り出して異なる別の文字列に変換することを「文字列の置換」と呼ぶ
置換作業を str_replace()関数を使う



str_replace("置換対象の文字列","置換する文字列","最初の文字列");



それぞれの文字列は変数でも可能



<?php
$tomorrow = "明日は晴れる";
$fine = "晴れる";
$rain = "雨だ";
$word = str_replace($fine, $rain, $tomorrow);
print($word);
?>



実行結果は



明日は雨だ



となる

変数に代入された文字列は他の変数に代入された文字列を結合して1つの文字列として扱うことが可能

文字列変数をピリオド「 . 」あるいはプラス「 + 」などの記号で結合する



<?php
$tomorrow = "明日は";
$fine= "晴れる";
print($tomorrow. $fine);
?>



実行結果は



明日は晴れる



2つの文字列変数を1つの文字列として変数に格納しその結果を出力
連結する文字列変数の数に制限はなくいくつでも結合することが可能

文字列はダブルコーテーション・シングルコーテーション・ヒアドキュメントという3つの形がある



ダブルコーテーション  "明日は晴れる"
シングルコーテーション '明日は晴れる'
ヒアドキュメント    <<<明日は晴れる



ヒアドキュメントは先頭にキーワードを指定し次にそのキーワードが出てくるまでの複数行の文字列を
改行文字を含めて1つの文字列として扱う
しかしあまり一般的ではない



$subtitle = "明日は晴れる\n";



文字列の中で「\n」とあるのは「改行」を意味している
実際に表示されるとき改行されるという保証はない

「\」を使った記述はダブルコーテションの中以外には使えない
シングルコーテーションで囲む場合には、「\\」と2つ続けて記述する

文字列の中でダブルコーテーションなどを表示したい場合には 「\」をつけてエスケープしなければならない



$subtitle = "明日は\"晴れる\"\n";



実行結果は



明日は"晴れる"



となる

エスケープ文字がない場合にはエラーとして画面に表示される




'シングルコーテーション
"ダブルコーテーション
\バックスラッシュ
tタブ記号
n改行記号
$ドル記号
rキャリッジリターン

連想配列ではインデックスに文字列を割り当てているためにループを利用する場合
普通の配列のように添え字を使ってその値を参照することができない


list() と、each()関数を使えば同じように機能することができる



<?php
$fruit = array("Apple" => "りんご", "Orange" => "みかん",
"Grape" => "ぶどう");
while(list ($key, $val) = each($fruit)) {
print ("インデックスの $key は、$val です<br>\n");
}
?>



実行結果は



インデックスの Apple は、りんご です
インデックスの Orange は、みかん です
インデックスの Grape は、ぶどう です



となる


each()関数を使って連想配列$fruit の値をサブ配列で返している
list()関数で変数$keyと$valに出力する値を割り当てている
ここでのキーは =>を使っているところ

インデックスの文字列の各項目として変数に格納される



<?php
$kamikaze = explode(",", "123,456,789,AAA,BBB");
print($kamikaze[3]);
?>



実行結果は



AAA



となる




インデックスの文字列がカンマで区切られておりその区切り文字を先頭で指定
そうすることによって1つの文字列内でインデックスをいくつでも設定することができる

expode()関数で指定された値の4番目のインデックスを取り出して表示
array()関数を使うことが多いのですがexpode()関数