PHP

Hypertext Preprocessor

PHP とは

 PHPは「ピーエイチピー」と読みます。正式名称は「 PHP : Hypertext Preprocessor 」といいます。ラスマス・ラードフ氏が開発した HTML に埋め込み可能なスクリプト言語で、Web アプリケーションの開発に広く利用されています。Perl のように動的な画面を Web 上で実現するためのプログラミング言語です。会員制システムや買い物カゴシステムなどの Web アプリケーションを開発する場合、実行速度や実装の容易さから実際の開発の現場でよく利用される言語の1つとなっています。

PHP の特徴

 PHP は、Web サーバーである Apache との親和性が高く、MySQL や PostgreSQL、Oracle などのデータベースと連携するための関数が多く用意されています。

無償で利用できる
 PHPはオープンソースなので、誰でも無償で使用できます。また、作成されたプログラムを自由に配布・販売することができます。依頼されたシステム開発などで、予算が厳しい場合、無償で利用できる PHPはありがたい存在です。ボランティアの皆さんの活躍で、バグフィックスなどのメンテナンスも十分に行こなわれているため安心して利用できます。
習得しやすい言語
 PHPは C、Java、Perlに似た文法や関数群が豊富です。これらのプログラミング言語を学習済みであれば、比較的短時間で PHPを習得することができます。
マルチプラットフォーム
 Linux、Windows、MacOS、Unix、Novell NetWare、OS/2、BISC OS、SGI IRIX 6.5.x、AS/400などの OS上で動作します。
デバッグのしやすさ
 プログラミングに誤りはつきものです。PHPではエラーが発生した場合、スクリプト上の行番号とエラー内容がブラウザ上に表示されるため、スクリプト中のミスを容易に発見できます。Perlや C言語などで実行時にエラーが発生した場合に比べるとデバッグが非常に簡単です。
インタープリタ言語
 perlと同じように、ソースコードをコンパイルすることなくすぐに実行できます。
CGIより高速に動作
 よく利用されている CGI(Perl)は、サーバにリクエスト(ブラウザからの要求)が届くたびにプロセス(プログラム)を起動してリソース(メモリや CPUパワー)を消費します。リクエストが集中すると起動されたプロセスの数だけリソースが消費されるためサーバの反応がいちじるしく落ちてしまいます。
 PHPの場合、通常は Apache(Webサーバ)のモジュールとして動作させるため、クライアントからのリクエストを Apache内部で処理できます。このためリソースの消費が抑えられ PHPは CGIより高速に動作します。
文字コード変換が自動
 PHPの設定ファイルに記述するだけで、入力されたデータの文字コード変換や、表示するときの文字コード変換を自動的に行います。スクリプト内部にコード変換処理を記述することはありません。
セッション管理ができる
 セッション管理が簡単にできるため、買い物かごシステムや会員制のシステムなどを簡単に構築できます。
各種データベースのサポート
 MySQLや PostgreSQL、Oracle、DB2、MS SQLServer、Sybaseなどがサポートされています。PHP5では標準で SQLiteがバンドルされています。ODBCを使えば、Windows上で PHPを動作させて Microsoft Accessと連携させることもできます。
関数が充実
 データベースに連携するための関数以外にも、メールを送信するための関数や画像を処理するための関数、ファイルを操作するための関数、セッションを扱うための関数など、数多くの関数が用意されています。
Web アプリケーション専用の変数が使える
 POST や GET、Cookie やセッションなど、Web ブラウザとサーバ間でやり取りするデータを専用の変数で扱うことができます。
セキュリティ対策
 数値や日付の入力チェックに便利な関数や、HTML 特殊文字を変換する関数などのセキュリティ対策用の関数が用意されています。
マルチバイト対応
 マルチバイト文字列を処理するための関数、文字コードの変換関数が用意されているので、日本語の文字を問題なく扱うことができます。
PDF、Ming、XML、Javaなどのサポート
 PHPはさまざまなライブラリをサポートしています。PHPスクリプトから PDFlibライブラリを使用して PDFファイルを作成したり、Mingというライブラリを利用することで「SWF(Flash)」フォーマットのムービーを作成することができます。PHPから、XMLや Javaなど他の言語との連携をするための関数もあります。Windows版PHPでは Windows用の COMを利用するための関数を利用できます。
オブジェクト指向の強化
 さらにオブジェクト指向の面で機能が強化されています。

動作に必要な仕組み

Webサーバとの連携
 PHPは、単独で使用されるものではなく、CGIで利用される Perlと同じように Webサーバと組み合わせて使用します。
データベースとの連携
 PHPは Web上のデータベースとの連携を目的として開発されたため他の言語と比べると容易にデータベースを利用した Webアプリケーションを開発することができます。