1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.17 $ -->
<chapter id="introduction">
<title>入門</title>
<sect1 id="intro-whatis">
<title>PHP とは?</title>
<simpara>
<acronym>PHP</acronym>("PHP: Hypertext Preprocessor"
の再帰的頭字語です)は広範囲にわたって使用可能されている
汎用スクリプト言語です。HTMLに埋め込むことができるので
特にWeb開発に適しています。
</simpara>
<para>
簡単な答えですが、どういう意味でしょう? 以下に例を示します。
</para>
<para>
<example>
<title>初歩的な例</title>
<programlisting role="php">
<![CDATA[
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
]]>
</programlisting>
</example>
</para>
<para>
PerlやCのような他の言語で書かれたスクリプトとの違いは、HTMLを出
力する多くのコマンドを用いてプログラムを書く代わりに何かを行う(こ
の場合はテキストを出力する)埋め込みコードを含むHTMLスクリプトを書
くということです。PHP コードは、"PHPモード" に入ったり出たりする特
別な開始および終了のタグで括られています。
</para>
<para>
PHP がクライアントサイド JavaScript のようなものと異なっている点は、
コードがサーバーで実行されるということです。上のようなスクリプトを
サーバー上においていたとしたら、クライアントは、スクリプトを実行し
た結果を受け取りますが、その出力を作成したコードに関する情報を得る
ことはできません。全てのHTMLファイルをPHPで処理するようにWebサーバー
を設定することさえ可能で、この場合、ユーザーが袖の内に何があるかを
見分けることは不可能になることでしょう。
</para>
<para>
PHPを使用する上で最も優れている点は、初心者に対して限りなく分かり易い
と同時にプロフェッショナルのプログラマに対しては多くの進んだ機能を提供
している点です。PHPの機能を羅列した長い一覧表を読まなければならないのか、
と心配する必要はありません。PHPはすぐに始められますし、数時間の内に
簡単なスクリプトが書けるようになります。
</para>
<para>
PHPを使用した開発ではサーバサイドでの動作に焦点が当てられますが、
他にも多くのことが可能です。<link linkend="intro-whatcando">
PHPにできること</link>まで読み進めてみてください。
</para>
</sect1>
<sect1 id="intro-whatcando">
<title>PHPにできること</title>
<para>
あらゆることができます。PHPでは主にサーバサイドでの活用に焦点が
当てられているため、フォームからデータを取得したり、動的にページ
の内容を生成したり、クッキーを送信・受信するといった他のCGI
プログラムに出来ることは全て行うことが出来ます。しかし、これが
全てではありません。
</para>
<para>
PHPスクリプトが使用される場所は主に3つあります。
<itemizedlist>
<listitem>
<simpara>
サーバサイドでのスクリプティング。これは最も古くからあり
PHPの中心となる場所です。ここでPHPを動作させるには
3つのものが必要です。PHPパーサ(CGIもしくはサーバモジュール)、
ウェブサーバ、そしてブラウザです。ウェブサーバは
インストールされたPHPと連結して起動されなければなりません。
ブラウザでウェブサーバにアクセスし、PHPページを閲覧することで
PHPプログラムの出力を得ることが出来ます。<link
linkend="installation">インストール</link>の章に詳しい
情報があります。
</simpara>
</listitem>
<listitem>
<simpara>
コマンドラインでのスクリプティング。PHPスクリプトは
サーバもブラウザも無しで動作させるようにすることも出来ます。
この場合、PHPパーサだけが必要となります。このタイプは
cron(Windowsではタスクスケジューラ)を使用して一定間隔で
スクリプトを実行したい場合や、ちょっとした文書処理を
行うのに最適な方法です。<link linkend="commandline">
コマンドラインでPHPを使う</link>の章に詳しい情報があります。
</simpara>
</listitem>
<listitem>
<simpara>
クライアントサイドでのGUIアプリケーション。PHPはおそらく
ウィンドウを使用したアプリケーションを書くのに最適な言語
では無いと思いますが、PHPに非常に慣れている場合には、そして
PHPの進んだ機能をクライアントサイドでのアプリケーションで
使用した場合にはPHP-GTKを使ってプログラムを書くことが出来ます。
同様の方法でクロスプラットフォーム名アプリケーションを書く
ことも出来ます。PHP-GTKはPHPを拡張するもので、通常の
ディストリビューションには含まれません。もし興味があるなら
<ulink url="&url.php.gtk;">PHP-GTKのサイト</ulink>を
訪れてみてください。
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
PHPは Linux, 多くのUnix系システム(HP-UX, Solaris, OpenBSD等),
Microsoft Windows, Mac OS X, RISC OS, その他全ての有名なOSで
動作します。PHPはまた現在使用されているほとんど全てのウェブサーバを
サポートします。これには、Apache, Microsoft Internet Information
Server, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd等
が含まれます。そうしたウェブサーバの大部分に対してPHPはモジュールを
提供し、その他のものに対してはCGIが提供されます。
</para>
<para>
つまりPHPを使用する場合にはOSとウェブサーバを自由に選ぶことが出来ます。
さらに手続き型のプログラミングかオブジェクト指向のプログラミングか、
もしくはそれらを混在させるかといった選択を行うこともできます。
現在のバージョンのPHPでは標準的なOOPの機能が全て実現されている
訳ではありませんが、(PEARライブラリを含め)多くのコードライブラリ
や大きなアプリケーションがOOPのみを使用して書かれています。
</para>
<para>
PHPはHTMLを出力するだけではありません。PHPはイメージやPDFファイル、
そして(libswfやMingを使って)Flashムービーまでもをその場で生成する
機能を備えています。またXHTMLやXMLといったその他の文書も自動的に
生成することが出来ますし、ファイルシステムに保存したり、印刷したり
サーバ側でキャッシュすることも出来ます。
</para>
<para>
PHP の機能の中で最も強力で優れた機能は、広範なデータベースをサポー
トしていることでしょう。データベース機能を用いたWebページの作成は、
非常に簡単です。以下のデータベースが現在サポートされています。
<blockquote>
<simplelist columns="3">
<member>Adabas D</member>
<member>dBase</member>
<member>Empress</member>
<member>FilePro (読込みのみ)</member>
<member>Hyperwave</member>
<member>IBM DB2</member>
<member>Informix</member>
<member>Ingres</member>
<member>InterBase</member>
<member>FrontBase</member>
<member>mSQL</member>
<member>Direct MS-SQL</member>
<member>MySQL</member>
<member>ODBC</member>
<member>Oracle (OCI7 および OCI8)</member>
<member>Ovrimos</member>
<member>PostgreSQL</member>
<member>Solid</member>
<member>Sybase</member>
<member>Velocis</member>
<member>Unix dbm</member>
</simplelist>
</blockquote>
また、DBXデータベース抽象化モジュールもあります。これはこのモジュールで
サポートされているデータベースに透過的にアクセスする機能を提供します。
加えて、PHPはODBC(Open Datebase Connection)をサポートするので、この世界
標準の機構をサポートするどんなデータベースにもアクセスすることが出来ます。
</para>
<para>
PHP は、IMAP、SNMP、NNTP、POP3、HTTP、COM (Windowsのみ) やその他
数え切れない程多くのプロトコルを用いる他のサービスの状態を追跡する
機能もサポートしています。低レベルのネットワークソケットをオープンし、
他のプロトコルを用いて通信を行うことも可能です。また、PHPはWDDXを
サポートし、基本的に全てのウェブプログラミング言語間で複雑なデータ交換
を行うことができます。相互接続機能としては、他にJavaオブジェクトの
インスタンスを作成してそれをPHPのオブジェクトとして透過的にアクセス
する機能や、CORBA拡張モジュールを使用してリモートオブジェクトにアクセス
する機能があります。
</para>
<para>
PHPにはPOSIX拡張正規表現もしくはPerl正規表現からXML文書の解析に至るまで
非常に便利なテキスト処理の機能があります。XML文書の解析や操作のために
SAXとDOMをサポートしています。XML文書の変換にはXSLT拡張モジュールを
使用することが出来ます。
</para>
<para>
eコマースでPHPを使用するのなら、オンラインでの支払いを処理するのに、
Cybercash payment、CyberMUT、Verisign Payflow Pro、そしてCCVS関数が便利です。
</para>
<para>
他にも多くの興味深い拡張モジュールがあります。mnoGoSearchサーチエンジン関数、
IRCゲートウェイ関数、多くの圧縮ユーティリティ(gzip, bz2)、カレンダー関数等です。
</para>
<para>
お分かりの通り、このページではPHPの機能やPHPを使用することの利点を全て
紹介することは出来ません。<link linkend="installation">PHPのインストール
</link>の章を読んで見てください。紹介された拡張モジュールに関しては<link
linkend="funcref">関数リファレンス</link>を読んでみてください。
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
|