mtmail.jpとは?メールで全てのブログ投稿も実現できるサービスがあるMovable Typeについて簡単ではございますがまとめたサイトでございます。

PHP: Hypertext Preprocessor

PHP: Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。
PHPはサーバーサイド・スクリプト言語として利用されており、Webサーバ上で動作し、Webサーバ上でPHPスクリプトの文書が要求されるたびに、そのPHPスクリプトが実行され、結果をウェブブラウザに対して送信する。平易な文法のため初心者でも習得しやすく、また大規模な開発にも多く用いられている。多くのフレームワークやライブラリが存在し、開発の手助けとなっている。
数多くのオープンソースウェブアプリケーションに利用されている一方、しばしば脆弱性の報告がなされ、過去に深刻なセキュリティホールが何度か報告されている。

オススメ情報

    名称

    正式名称は「PHP: Hypertext Preprocessor」であるが、一般的には「PHP」と省略して用いられる。このPHPとは、Personal Home Page の頭文字に由来する。

    特徴

    Webアプリケーションのサーバーサイド・スクリプトに専門化している。
    C言語やJava言語に似た、平易な文法。
    データベースへの容易なアクセス。(組み込み関数、および、標準ライブラリPDOによる。)
    クラスベースオブジェクト指向のサポート。
    例外処理(try, catch, throw)のサポート。
    多くのオープンソースのフレームワークやライブラリが利用可能である。
    ASP, JSPと似たHTML埋め込み型の構文をとる。ただし最近のフレームワークを使った開発では、埋め込み型の構文を使用しないことが多い。
    様々な付加機能がPEARというオンラインライブラリ集でモジュールとして提供されている。pearコマンドで導入/管理ができる。PerlでいうところのCPANである。
    ウィキ構築に用いられるソフトのMediaWiki(Wikipediaで使われている)やPukiwikiを始めとして、数多くのオープンソースウェブアプリケーションに利用されている。
    処理系本体は、C言語で書かれている。

    注目記事

      技術構成

      スクリプト実行環境

      PHP4以降、Zend Engineをスクリプト言語を処理するエンジンとして利用している。Zend Engineは、PHP3の開発者によって設立されたZend Technologies Ltd.により開発されたオープンソースのスクリプト言語エンジンである。Zend Engineは1つのプロセスが1つのインタプリタのコンテキストを持つように設計されていて、単独ではマルチスレッドを用いた処理をサポートしていない。
      スクリプト実行環境としてのPHPは、Zend Engineに加え、PHPの組み込み関数の実装、Webサーバや標準入出力とスクリプティングエンジンの間を仲介するSAPI (Server API)レイヤ、マルチスレッドで動くWebサーバのモジュールとして利用される場合にグローバル変数のセマンティクスを提供するTSRM (Thread Safe Resource Manager)、プラットフォーム間での入出力機構やAPIの差異を吸収するStreamsレイヤからできている。
      しかし、一部の組み込み関数はプラットフォームごとに挙動が違うため、スクリプトによっては移植作業が必要になる場合がある。

      Webサーバとの統合

      PHPをWebサーバで動作させる方法には、実行ファイル形式(CGI / FastCGI)、モジュール形式(mod_php / ISAPI など)がある。どの方法を利用するか(利用できるか)はWebサーバにより異なる。実行ファイル形式によるCGIはほぼ全てのWebサーバに対応しているが、Apacheで動作させる場合はmod_phpとFastCGI、IISで動作させる場合はISAPI、lighttpdで動作させる場合はFastCGIが使用できる。
      このほかにも、PHPに標準で実装されているWebサーバ用SAPIは多い。以下に一覧を挙げる。
      CGI
      AOLserver
      Apache HTTP Server (バージョン 1.x 用 / 2.x 用)
      Sun Java System Web Server
      Roxen WebServer
      Tux
      ISAPI (Microsoft Internet Information Services等)
      Caudium
      Continuity
      Pi3Web
      thttpd
      とくに、HTTPリクエストの度にプロセスを起動させないインタフェース(Apacheとmod_phpの組み合わせ、またはFastCGIに対応したWebサーバ(lighthttpdなど)など)での動作が高速である。

      おすすめ情報