PHPの予備知識
PHPとは?
ひとことで言えば、*Webに特化した*サーバーサイド*スクリプト言語です。主に動的にWebページを生成するのに使われています。
- * Webに特化した
- PHP のコードは、HTMLソースの中に記述(*1)します。また、ウェブサーバの拡張モジュール(*2)として組み込まれまれていて、実行結果はブラウザに出力されます。
- * サーバーサイド
- PHP はサーバー側で実行(*3)されます。JavaScript もHTMLソースの中に記述しますが、クライアント(ブラウザ)側で実行されます。JavaScript でブラウザなどクライアント環境を考慮しながらプログラミングするように、PHP ではサーバ環境を考慮しながらプログラミングします。
またメール送信やデータベース制御など、サーバ資源を活用する為の関数があらかじめ用意されています。 - * スクリプト言語
- PHPは 実行時にソースコードを解釈しながら実行するインタープリタ言語です。C や C++ のようにソースコードを実行可能なプログラムにコンパイルする必要がないので、ソースを書き終えたらすぐに動作確認が出来ます。
- (*1) 正確に言うとPHPタグ(<?php ~ ?>)の外もPHPスクリプトの一部です。PHPのタグの外は何もしてないように思いがちですが「出力する」という処理を行っていて、厳密に言うとPHPの出力設定の影響を受けています。
- (*2) PHP はウェブサーバの出力を加工する拡張モジュールです。リクエストされたその時に HTML や XML Javascript などを加工・整形する機能をウェブサーバに付加します。
- (*3) ひとつのPHPスクリプトファイルの中に、PHPのコードと JavaScript のコードが記述してあった場合、先ずサーバ側でPHPのコードが解釈&実行され、ウェブサーバを経由してブラウザに出力されます。次にブラウザによって JavaScript が解釈&実行されるという処理の流れです。PHPから見ると HTML も Javascript もただの文字データです。
PHPのココが素敵
- 日本語のマニュアルがある
- PHP の配布元から日本語のマニュアルが提供されています。言語の解説本ならどの言語もわかりやすいものが沢山出版されていますが、PHP のように標準で日本語のマニュアルがある言語を私は知りません。(私が知らなかっただけのようです。) マニュアルの日本語化プロジェクトの皆さんに感謝!感謝!です。
- 特別な開発環境がいらない
- もし PHPスクリプトにエラーがあった場合、そのエラーは行番号と共にブラウザに表示されます。PHP そのものにこの機能があるので、デバッカとか○○ビルダーとか、勿論コンパイラも必要ありません。
- PHP を始めるために最小限必要なのは、ウェブサーバーと PHP をインストールしたコンピュータ、コードを編集するためのテキストエディタ、結果を表示させるためのブラウザの3つだけです。
- C に類似した言語仕様
- 過去に少し C をかじったことがあったので、PHP の構文にはすぐになれることが出来ました。ループ処理や条件分岐などは C とほぼ同じですし、C++ のようなオブジェクト指向プログラミングも可能です。逆に PHP を習得してしまえば C や C++ の習得も簡単な気がします。
- CGI よりも高速
- PHP はウェブサーバの拡張モジュールなので、CGI のように外部プログラムを呼び出すオーバーヘッドが無い分、負荷も軽く高速に動作します。
PHPの憂鬱
- PHP の関連サイトや書籍が少ない
- 日本ではまだまだ認知度が低いようで、関連サイトや書籍は数えられるほどです。PHP を取り巻く環境を豊かにするために、より多くの方に、知って、触れて、なじんでもらいたいと思うのです。
- 発展途上
- PHPが世に出たのが1995年。言語の中では歴史の浅いほうです。そのためか頻繁にバグ修正や仕様の見直しがなされています。バージョンが上がる度に便利になりますが、今(2003年)のところ、常に最新情報に目を向けておく必要があります。がんばれPHP。
- 2007-07-21追記
- 今は情報が少ないなんてことはありません。関連サイト・書籍・ライブラリーともずいぶん増え、PHPを取り巻く環境は豊かになりました。
- そして 2007年7月13日、PHP本家から2008年8月で PHP4 の開発を終了する旨が発表されました。PHP4.0.6からお世話になってただけに寂しい限りですが、PHP5 が利用可能なレンタルサーバーも徐々に増えてきて、今移行の時期を迎えています。
PHPで何が出来る
たくさんあるウェブ関連技術の中で PHP の持つ役割とは、クライアントのリクエストに対して、サーバーに存在するさまざまなサービスや情報を加工して効率良く提供することです。 処理の流れを図にするとこんなイメージです。

- 1.リクエスト
- リンクをクリックしたり、フォームからデータを送信したり、といったアクションによって、サーバにリクエストを発行します。
- 2.ウェブサーバからPHPへ
- リクエストを受け取ったウェブサーバは、対象のPHPスクリプトファイルを PHPパーサー に処理させます。
- 3.PHP実行
- PHPパーサー が対象のPHPスクリプトを解釈し書いてある通りコードを実行します。この中で、HTML や Javascript を整形加工したり、データベースからデータを獲得したり、メールを送ったりといった処理を行います。ここが PHPプログラミングの部分です。
- 4.レスポンス
- PHP の実行結果(出力)を受け、ウェブサーバがクライアントにレスポンスを送信します。
- 5.ブラウザが表示
- ウェブサーバが返してきたレスポンスをブラウザが処理します。HTMLを表示したり、JavaScript を実行したり、Flashアニメーションを再生するのもブラウザの仕事です。
実際にどのようなことが出来るかというと、アクセスカウンタ、掲示板、チャット、ウェブメール、ショッピングカート、ユーザー認証、アクセス解析、サイト管理、といったことです。またそれらを上手に組み合わせれば、ショッピングモールやポータルサイト、グループウェア、コンテンツマネージャーのような、大規模なウェブサービスを構築することも可能です。
だた勘違のないようにつけ加えると、PHP はあくまでも「言語」ですので、PHP そのものにデータベースやメール送信などの機能があるわけではありません。PHP にあるのは、これらサーバー資源を容易に利用できる関数群と、情報やリクエストを獲得する手段、それとシンプルな言語仕様です。
なので「PHPで何が出来る?」と尋ねられたら、「あなたの考えたことを、コンピュータにやらせることが出来る」と答えるのが正しいのかもしれません。
PHPプログラミングってどんなもの?
これは実際体験してしまうのが一番です。すでにPHPが使えるサーバがあるなら、次の4ステップで試すことが出来ます。
- [ステップ1] テキストエディタでコードを書く
テキストエディタに次のコードを入力してみましょう。コピペでもOKです。入力を終えたら test.php など適当な名前を付けて保存します。PHPスクリプトは、
.phpという拡張子をつけるのが基本となっています。<html> <head> <title>USER_AGENT</title> </head> <body> <p>USER_AGENT = <?php echo $_SERVER['HTTP_USER_AGENT']; ?></p> </body> </html><?php echo $_SERVER['HTTP_USER_AGENT']; ?>の部分がPHPのコードです。その他はなじみのあるHTMLですね。現時点では、PHPのコードは <?php で始まり、?> で終わると言うことだけ覚えていてください。- [ステップ2] サーバにアップロードする
今書いたPHPスクリプトファイルを、FTPソフトでサーバのブラウザでアクセスできるところにアップロードします。CGIのようにパミッションを設定する必要はありません。
- [ステップ3] ブラウザからリクエストする(実行)
ブラウザのURL欄に、アップロードしたPHPスクリプトのURLを入力し、リクエストを送信します。ウェブサーバはリクエストされたPHPスクリプトを実行してその結果を返してきます。
- [ステップ4] 結果を確認する
PHPスクリプトの中には、「今アクセスしている USER_AGENT(ブラウザの情報)を表示せよ」というコードが書いてありました。実行結果としてブラウザにはこんな感じで表示されてると思います。
USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
ブラウザに表示されてるのは、ウェブサーバの出力をブラウザが解釈したもので、純粋なウェブサーバの出力ではありません。なのでPHPスクリプトの実行結果を確かめる時は、必ずページのソースも見ましょう。
IEなら メニューの[表示]→[ソース]でページのソースを見ることが出来ます。この場合ソースはこんな具合になってるはずです。
<html> <head> <title>USER_AGENT</title> </head> <body> <p>USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</p> </body> </html>PHPパーサーがPHPプクリプトをどう処理したのかイメージできましたか。
規模の大小はありますが、何をするにしてもPHPプログラミングは 「コードを書く」⇒「確かめる」の繰り返しです。結構簡単だと思いませんか? PHPスクリプトにあなたのアイデアをのせて、おもしろいアプリケーションやサービスを作り出してみましょう。
次は、PHPプログラミングに必要な道具(ツール)についてです。


