"全然知らない" から "少しは知ってる" になるための入門シリーズ
PHP編
はじめに

PHPを使うとクールでモダンでインタラクティブそしてイノベーティブなウェブアプリケーションをエフィシエントかつサステイナブルにクリエイトすることができます。 あれ? こういう場合はクリエイトじゃなくてディベロップと言った方がいいのかな?  いえいえ、ディベロップじゃなくてディヴェロップですよ。下唇を噛みながら……ヴェ!  何を言っているかわからなくなってきましたが、つまりなんだか楽しそうだぜってことです。

PHPという単語を聞いたことはあっても、実際に自分で使ったことはないという人は多いかもしれません。 たとえばレンタルサーバーを借りてHTMLでちょっとしたランディングページのようなものを作ったことがあっても、 PHPを使うのはちょっと大げさな気がして、今のところ手を出したことはない、というのはよくあるケースではないでしょうか?  しかし大抵のレンタルサーバーでは特に何も追加の手続きを申し込まなくても最初からPHPが使えるようになっています(逆に高価なホスティングサービスでは自由な半面、自分でインストールしないといけないかもしれません)。 使えるようになっているなら使ってみない手はありません。

と言っても、大げさな使い方をする必要はありません。 何も知らないでいるよりは、ほんのちょっとだけでも使い方を知っておけば、毎日の何気ない生活の中にウキウキの瞬間を見つけることができるようになることでしょう。 朝、窓辺に訪れた小鳥さんたちとお話できるようにだってなるかもしれません。 何を言っているかわからなくなってきましたが、つまりなんだか楽しそうだぜってことです。

というわけでここでは、PHPのことは全然知らないけれどHTMLファイルをクリエイトしてサーバーにインタラクティヴにアップロードしたことぐらいはあるぜ!  という才気あふれるお友達を対象に、PHPの簡単な機能をエフィシエントかつテアモタントにどうのこうのして、最後はお問い合わせフォームを作ってみます。

では張り切ってまいりましょう。

まずはHTMLファイルから

早速PHPを使っていきたいところですが、まず下準備として、普通にHTMLファイルを作ってサーバーに置いてください。 中身は何でもいいです。単なるHTMLで構いません。HTML名人のあなたにはお茶の子さいさいですよね?

たとえばこんな感じでしょうか。

test.html
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
</body>
</html>

これをブラウザで表示してみ……なくてもどうなるかは知っての通りです。退屈な日常にはもう飽き飽きってやつだぜ。

ではさて、ちょっとした刺激を求めて、このファイルの拡張子を .php に変えてみてください。 拡張子を変えるだけです。中身は一切手をつけません。

つまりこういうことですね。

test.php

以下同文

拡張子が .php になったので、これで一応PHPファイルです。

ではさて、これをブラウザで表示してみましょう。 どうなるでしょうか?

はい。どうもなってませんね。
退屈な日常は相変わらずなのでしょうか?

いいえ、そんなことはありません。1つ重大なことがわかりました。 PHPファイルはHTMLファイルと全く同じように扱える、ということです。 つまり PHP > HTML ということです。友達以上恋人未満ということです。日常の隙間に忍び寄るロマンスの誘惑ということです。 何を言っているかわからなくなってきましたが、つまりなんだか以下略ってことです。

ではこのファイルにPHPのコードをカキコしてあれこれ試してみましょう。うわ、カキコって。古っ。

とにかく試してみる

以下のように書いてみてください。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "あいうえお";
        
    ?>
    
    
</body>
</html>

ブラウザでアクセスするとどうなるでしょうか?




こうなりました。
PHP大成功!

さて、今のどこらへんがPHPだったのか?

<?php print "あいうえお"; ?>

こういう箇所を追加したのでした。この部分がPHPです。 <?php ~ ?> の中にPHPのコードを書きます。
今回、PHPのコードとして書いたのはこれですね。

print "あいうえお";

こうすると、print の右側に書いたものが画面に表示されるということですね。 引用符の中身を変えると表示も変化します。いろいろ変えて遊んでみてください。

print の代わりに echo と書いてもほぼ同じです。つまり、

echo "あいうえお" ;

という感じですね。
何が違うかと言うと、方言のようなもの……と言うとエライ人に怒られるのかな。 知りたい人は検索してみてください。

ちなみに今回 print を選んでいるのは性能的な理由からではなく、 他のプログラム言語でも同じような機能が print かそれに近い綴りで存在していることが多いからです。 これを読んだ人が今後他の言語に興味を持った際、違和感なく入っていけるように、という仏のような深い配慮であります。遠慮なく感動してね。
タグを書いてみる

たとえば……。

<?php print "あい<h1>う</h1>えお"; ?>

こうなるわけですね。
試しにブラウザの画面上で「右クリック → ソースの表示」してみると、何が起きているのかよくわかると思います。 要は print で書いたのと同じ内容がブラウザ側に出ているだけです。

test.php のブラウザで表示後のHTMLソース
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    あい<h1>う</h1>えお
    
    
</body>
</html>
変数を使ってみる

さて、書いたものがそのまま出るだけだったら普通にHTMLで書いたって同じです。 何かもう少しPHPっぽいことがしたいところです。

というわけで「変数」なるものを使ってみましょう。

以下の内容をコピペしてみてください。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        $x = "あかさたな";
        
        print $x;
        
    ?>
    
    
</body>
</html>

ブラウザでアクセスすると……、

ふむ。なんかあんまり変わり映えしないですね。

しかしやっていることは違います。何気なく続く日常の水面下で変化は着実に進行しているのです。

<?php $x = "あかさたな"; print $x; ?>

前回と同じく print です。
printはどんな機能かと言えば、右側に書いたことをブラウザに表示する、というものでした。 ここでは右側に何を書いているかというと、見ての通り $x です。 ではブラウザに $x と表示されてもよさそうなものですが、そうはならず、「あかさたな」と表示されたのでした。

つまりその上の行にある、これですね、

$x = "あかさたな";

ここで $x の内容は「あかさたな」ですよ、と言っているわけです。 そう言われたからには print だって従わざるを得ません。 この $x が「変数」、というわけですね。

変数を使うのと、文字を直接書くのと何が違うのか?  同じと言えば同じですし、違うと言えば違います。

たとえば……、

<?php $x = "あかさたな"; $y = "おおおおおおおお"; $z = "わぁ!"; print $y; ?>

こうすると何が表示されるでしょうか?  変数が増えてますが、print は一ヶ所です。

はい。
print で変数を切り替えることで表示するものを切り替えることができる、というわけですね。 だから何だと言われればそれまでですが、 線路を渡った向こうに別系列のスーパーが新設されて「ちょっと遠いけど行ってみようかな〜」というのと同じぐらいには楽しいかもしれません。まさに日常のウキウキってやつです。

変数と生の文字列を混ぜてみる

表題の通りであります。
たとえばこんなふうにしてみましょう。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        $abc = "おしょうゆ";
        $def = "お味噌";
        $xyz = "ふりかけ";
        
        print "あらヤダ! {$abc}を切らしちゃってるわ!";
        
    ?>
    
    
</body>
</html>

ではブラウザで様子を見てみましょう。

あらー。おほほほほ。
じゃあちょうど駅向こうにスーパーが新装開店したって言うし行ってみようかしらね、ってなもんです。

ポイントはここです。

print "あらヤダ! {$abc}を切らしちゃってるわ!";

生の文字列の中に $abc が混じってます。 さきほど見たようにこれは「変数」ですね。 何かを切らしてしまうことというのは日常的によくあることです。 定型文の中で部分的に単語を入れ替えて発言する。これもまた日常的によくあることでありましょう。 変数を生の文字列に混ぜるときには半角の { と } で囲んであげてください。それが日常を生き抜くコツです。

ちなみにこの「生の文字列」のことをあっちの世界では「リテラル」と呼んだりします。 おっ、ささやかに非日常の香りが漂ってきましたよ? ワクワク!

ループしながら大量に表示

同じことの繰り返しってありますよね。

たとえば、

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        print "生まれて生きて死ぬ<br>";
        
    ?>
    
    
</body>
</html>

で、こうなるわけですけど、
こんなふうになるってあらかじめわかってるわけですから、もっと簡潔に書きたいものです。

というわけで、こうです。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        for ( $i = 0; $i < 100; ++$i )
        {
            print "生まれて生きて死ぬ<br>";
        }
        
    ?>
    
    
</body>
</html>

で、こうなるわけです。

つまり、

for ( $i = 0; $i < 100; ++$i )

ここに書いた数字の分だけ、その直下の { と } で囲った処理が繰り返される、ということですね。

条件分岐

それで実際のところ何回繰り返せばいいのかってのはわからないですが、
一応、こういうふうに決められてるとします。

for ( $i = 0; $i < 100000000; ++$i ) { print "生まれて生きて死ぬ<br>"; }

これを実行するとどうなるかは頭の中でシミュレーションしていただくとして、 こうやって同じことを繰り返しているうちに、自分で「もういいんじゃね?」って思うときがくると思うんですよ。

つまり、

for ( $i = 0; $i < 100000000; ++$i ) { print "生まれて生きて死ぬ<br>"; if ( $i > 10 ) { print "解脱"; break; } }

はい。

if ( $i > 10 )

ポイントはここです。
この $i というのは 上の for の中に書いてあるのと同じ「変数」です。

こうすると何が起きているのかわかりやすいかもしれません。

for ( $i = 0; $i < 100000000; ++$i ) { print "{$i} 回目 : "; print "生まれて生きて死ぬ<br>"; if ( $i > 10 ) { print "解脱"; break; } }

変数 $i の値が 「> 10」の条件を満たすと、その直下の { ~ } の中身が実行される、ということですね。

これであなたは、ループ処理(for)と、条件分岐(if)を覚えました。やったぜ!

ループ処理を実現する機能としては他に while や foreach などがあります。 条件分岐としては他に switch というものもあります。書き方は少し違いますが考え方は似たようなものです。 元気があるときにでも調べてみてください。きっと楽しいと思います。
$_SERVERでIPアドレス表示

今まではなんだかんだ言いつつ、自分で実際に書いたものが画面に出ているだけでした。
それでは物足りない。
人生には身に覚えのないサプライズが必要です。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print $_SERVER["REMOTE_ADDR"];
        
    ?>
    
    
</body>
</html>

おっ、何だこれは……?
IPアドレスだ!

<?php print $_SERVER["REMOTE_ADDR"]; ?>

さて、お馴染みの print です。右側もお馴染みじゃないように見えますが、これも変数です。 このように書くと、アクセスしている人のIPアドレスが取得できます。 もちろん、お隣の家に行ってそこのパソコンで表示すればそのパソコンのIPアドレスが表示されます。

しかし今までと違って自分で IPアドレスを書き込んだ覚えはありませんね?  どうやらPHPには自分で書かなくても自動で設定される変数があるみたいですね。 同じような値は他にもいろいろあります。元気があるときにでも調べてみると楽しいかもしれません。

PHPのコードを書いたまま拡張子を .html に戻すとどうなるか?

ずいぶん遠いところまで来てしまいました。 今、あなたの手元では test.php の中身はどうなっているでしょう?  ここに書いたサンプル以外のことをいろいろ試して、ぐちゃぐちゃになっているかもしれませんね。

なんでもいいのですが、例えばこうなっているとします。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "ああああああああああああああああ";
        
    ?>
    
    
</body>
</html>

さて、このドキュメントの最初の方で PHP > HTML というお話をしました。 では、このまま拡張子だけを .html に戻すとどうなるのでしょう?

やってみるしかありません。

test.html
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "ああああああああああああああああ";
        
    ?>
    
    
</body>
</html>

ではブラウザでアクセス。

むむ。
PHPのコードが実行されていないようです。

では、ここで「右クリック → ソースの表示」をしてみると……。

test.html のソース
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "ああああああああああああああああ";
        
    ?>
    
    
</body>
</html> 

自分でファイルに書いた通りですね。
つまり画面には出ませんが、データとしてはそのまま送信されてきているというわけです。

だから何だと言われると困るところですが、 中身は全く同じファイルでも、サーバー側でPHPとして取り扱われるか、HTMLとして取り扱われるかで 結果に違いが出てくる、ということを体感してみると、少しだけ楽しいんじゃないかな? ということでした。 <?php ~ ?>で囲ってあるおかげで表面上はPHPのコードが画面に出てこないというのもうまくできてると思いませんか? ウキウキ!

サーバーの設定によっては拡張子が .html でも PHPのコードが実行できる場合があります。 その場合、上記のサンプルはPHPとして実行されます。
フォーム作成に向けて

さて、あなたはHTML名人ですから、フォームを書くのは朝飯前ですよね?

たとえばこんな感じになっているとします。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print "ああああああああああああああああ";
        
    ?>
    
    <form action="">
        
        <p><input type="text" id="abc"></p>
    
        <p><button>送信</button></p>
    </form>
    
    
</body>
</html>

はい、こんな感じになりますね。

この状態で送信ボタンを押すとどうなるかというと、どうもなりません。

しかしあなたは今やHTML名人であるだけでなくPHP名人でもあるのです。 画面で入力された値を取得することだって朝飯前です。

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
        
        print $_POST["abc"];
        
    ?>
    
    <form method="post" action="">
        
        <p><input type="text" name="abc"></p>
    
        <p><button>送信</button></p>
    </form>
    
    
</body>
</html>

これをブラウザで見てみると……

あれ? なんかまた見覚えのないものが表示されてますね。あなたの環境では多少異なる文字列だと思いますが、雰囲気は同じだと思います。
一体何なのかというと、これです。

print $_POST["abc"];

さっきの $_SERVER と形が似てますね? これも同じように、知らないうちに中身が設定される変数の一種です。 どうやらこれのせいで画面に身に覚えのないことが表示されているようです。

それはさておき、入力欄に何か書いて「送信」してみましょう。

すると……、

おっ、身に覚えのある内容になった!

つまりどういうことかと言うと、ここですね。

<input type="text" name="abc">

入力フォームの nameの値と $_POST["abc"] の引用符の内側の値を合わせておく。 するとそのフォームの入力値が取得できる、というわけですね。 ということでさきほど出ていた身に覚えのないメッセージをもう一度見てみましょう。

> Notice: Undefined index: abc in /home/user/Documents/samples/php/test.php on line 13

なんかゴニョゴニョ言ってますが、つまりこの段階では $_POST["abc"] で取得できる値が存在しませんよ、という意味ですね。 しかしそんなことを言われたって、画面を表示した段階ではまだ入力してないんですから仕方がありません。

サーバーの設定によってはこういうメッセージが出ないかもしれません。
ページを分ける

入力してないんだから仕方がない、とは言うものの、いちいち「Noticeぅ!!」などと言われるのは、 まるで参加した覚えのないゲームに知らないうちに参加したことにさせられていて「おまえ負けぇ〜」と言われているようで面白くありません。

というわけでページを分けましょう。 「フォームのページ」と「入力を受け付けるページ」を別々にします。

まずはさきほどのページから、$_POST で表示する箇所を省いて……、

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
    ?>
    
    <form method="post" action="test2.php">
        
        <p><input type="text" name="abc"></p>
    
        <p><button>送信</button></p>
    </form>
    
    
</body>
</html>

形式的に <?php ~ ?>を残してありますが中身は空です。この場合はこのタグ自体を消してしまってもいいですね。 結局このページではPHPを使わないので拡張子を .html にしてしまったって構いません。

実際にPHPの機能を使うのはフォームの「送信」を押したときの送信先のページです。
formタグに送信先のページを書いておきます。HTML名人のあなたには説明不要ですよね?

<form method="post" action="test2.php">

ではその test2.php というPHPファイルを新たに作りましょう。

test2.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験(受信側)</div>
    
    <?php
        
        print $_POST["abc"];
        
    ?>
    
    <div>
        <a href="test.php">入力画面に戻る</a>
    </div>
    
</body>
</html>

ではさて、test.php にブラウザでアクセスしてみましょう。

うむ。警告は出ていません。ここでは $_POST に触ってませんからね。警告を受けるいわれはございません。

では張り切って入力欄に何か書いて「送信」してみようではありませんか。

うむ。身に覚えのある結果だぜ!
あれ? 自分で書いたことが表示されただけなのに、どうしてこんなにもウキウキしてるのかしら? きっとこれがPHPのマジックなのね!

ではさて、このウキウキ感を抱きしめつつ「はじめに」に書いた通り、お問い合わせフォーム作成に向けて突き進んでまいりましょう。

メール送信ってどうするんですか?

前項の内容を応用すればすでにフォームっぽいものが作れてしまいそうですね。 しかし肝心のメール送信はどうすればいいのでしょう?

そういうのはネットで検索すれば一発で出てくるのですけど、それを言っては身も蓋もないので簡単に紹介しておきます。 PHPでメール送信をするには次のようにします。

test3.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHPでメールを送信する実験</div>
    
    <?php
        
        $mailTo = "test@test.com";
        $title  = "メールの件名";
        $text   = "本文";
        $from   = "soushinmoto@soushinmoto.com";
        
        mail ( $mailTo, $title, $text, "From: {$from}" );
        
    ?>
    
    
</body>
</html>

今までのサンプルに比べると急に変数が増えたので目に優しくないかもしれませんが、 落ち着いて見てみればどうということはありません。

$mailTo が宛先のメールアドレスです。ここにあなたのメールアドレスを入れて試してみてください。
$from は送信元として相手に伝わるメールアドレスです。自己申告です。あなたの生き様が問われる領域です。
その下の mail以降がPHPでのメール送信機能です。 カッコの中にパラメータを入れると、それに従ってメール送信をしてくれる頼もしいお友達です。 変数を使わずにこのカッコの中にメールアドレスなどを文字列として直接書いても同じなのですが、 それもまた目に優しくないかな、と思ったのでこんなふうにしてみました。お好みでどうぞ。

その他、細かいことを言い出すと命がいくつあっても足りないぐらい時間がかかってしまうのですが、 結論だけ言うと、上のように書いたPHPファイルにブラウザでアクセスすれば送信が実行される……はずです。やってみましょう!


メール送信機能を使うにはサーバーの側でメール送信サーバー(SMTPサーバー)が稼働している必要があります。 レンタルサーバーでは最初から稼働していることがほとんどです。 サーバーによってはPHPでのメール送信機能が使えないようになっている場合もあります。 上のサンプルを実行してみて、メールが届かない場合は……がんばってください!
お問い合わせフォームだ!

入力欄で入力した値を取得する方法がわかった!
メール送信する方法がわかった!
ならば、あとは突っ走るのみ!

まずはHTML名人の腕前にモノを言わせてフォームの体裁を作り込むぜ!

test.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <div>PHP実験</div>
    
    <?php
    ?>
    
    <form method="post" action="test2.php">
        
        <p>
            お名前
            <input type="text" name="name">
        </p>
        <p>
            件名
            <input type="text" name="subject">
        </p>
        <p>
            メール
            <input type="text" name="resmail">
        </p>
        <p>
            本文
            <textarea name="honbun"></textarea>
        </p>
    
        <p><button>送信</button></p>
    </form>
    
    
</body>
</html>

お次は送信処理側だぜ!

test2.php
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>サンプル</title>
</head>
<body>
    
    <?php
        
        $name     =  $_POST["name"];
        $subject  =  $_POST["subject"];
        $resmail  =  $_POST["resmail"];
        $honbun   =  $_POST["honbun"];
        
        $mailTo = "test@test.com";
        $title  = "お問い合わせフォームより:{$subject} by {$name}";
        $text   = $honbun;
        $from   = $resmail;
        
        mail ( $mailTo, $title, $text, "From: {$from}" );
    ?>
    <div>
        お問い合わせを受け付けました。
    </div>
    <div>
        <a href="test.php">入力画面に戻る</a>
    </div>
    
</body>
</html>

少し分量が増えてますが、今までに覚えたことの組み合わせです。 $mailTo = "test@test.com"; の箇所はあなたのメールアドレスに変えておいてくださいね〜。

さて、うまくいくでしょうか? いくはずです! いけ〜!


さぁ、メールボックスを確認だ!


このサンプルはお問い合わせフォームとしてはまだまだ改善の余地がたくさんあります。 たとえば送信の前に本文が未入力かどうかを調べて、未入力なら送信処理の代わりにエラーメッセージを出す、 というぐらいの機能があってもよさそうです。 それから、メールアドレスを入力してもらっているのですから、 お問い合わせを入力した人へ自動返信メールを送信することもできそうです。 自分なりに工夫して作り込んでみてください。
おわりに

以上です。
PHPを使うことで何気ない日常の中にウキウキの瞬間を見つけつつ 手軽にウェブページに実用的な機能を追加したり小鳥さんとお話したりできるということが実感できたのではないでしょうか?

PHPが使えるサーバーはたくさんあります。そして今やあなたは「自分でPHPが書ける人」です。 今回ここで紹介したのはPHPのほんの一部です。工夫次第でもっといろいろなことが実現できます。自分なりに経験を重ねて楽しいウェブサイト作りに活用してみてください。