-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathintro.xml
203 lines (196 loc) · 10.7 KB
/
intro.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 77f5f3b3a8bbe1ad7727201c7603d1419dd7840f Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,takagi -->
<chapter xml:id="introduction" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<info>
<titleabbrev>入門</titleabbrev>
<title>PHP は何ができるものですか?</title>
</info>
<section xml:id="intro-whatis" annotations="chunk:false">
<title>PHP とはなんでしょう?</title>
<simpara>
<acronym>PHP</acronym> (<emphasis>PHP: Hypertext Preprocessor</emphasis>
を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。
PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
</simpara>
<para>
で、結局のところどういう意味なのでしょう? 以下に例を示します。
</para>
<para>
<example>
<title>初歩的な例</title>
<programlisting role="php">
<![CDATA[
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
]]>
</programlisting>
</example>
</para>
<para>
HTMLを出力するために多くのコマンドを記述する (C や Perl のように)
代わりに、PHP のページは <replaceable>何か</replaceable>
(この例では、<computeroutput>Hi, I'm a PHP script!</computeroutput> と出力)
を行うコードを HTML に埋め込むことになります。
PHP のコードは特別な <link
linkend="language.basic-syntax.phpmode">開始および終了の処理命令
<code><?php</code> と <code>?></code></link>
で囲まれており、これによって <quote>PHP モード</quote> の切り替えを行います。
</para>
<para>
PHP がクライアントサイド JavaScript のようなものと異なっている点は、
コードがサーバーで実行され、その結果がクライアントに送信されるということです。
クライアントは、スクリプトを実行した結果を受け取りますが、
その出力を作成したコードがどんなものなのかを知ることはできません。
全てのHTMLファイルをPHPで処理するようにWebサーバー
を設定することさえ可能で、この場合、ユーザーはPHPが動いていることすら
知ることができません。
</para>
<para>
PHPを使用する上で最も優れている点は、初心者に対しては非常に分かり
やすいと同時に、プロフェッショナルのプログラマに対しては多くの進んだ
機能を提供している点です。PHPの機能を羅列した長い一覧表を読まなけ
ればならないのかと心配する必要はありません。PHPは誰でもすぐに始められま
すし、時間を掛けずに簡単なスクリプトが書けるようになります。
</para>
<para>
PHPを使用した開発ではサーバーサイドでの動作に焦点が当てられますが、
他にも多くのことが可能です。<link linkend="intro-whatcando">
PHPにできることは?</link>まで読み進めてみてください。
Webプログラミングのみに関心がある場合には、<link linkend="tutorial">
簡易チュートリアル</link>に進んでください。
</para>
</section>
<section xml:id="intro-whatcando" annotations="chunk:false">
<title>PHPにできることは?</title>
<para>
あらゆることができます。PHPでは主にサーバーサイドでの活用に焦点が
当てられているため、フォームからデータを取得したり、動的にページ
の内容を生成したり、クッキーを送信・受信するといった他のCGI
プログラムに出来ることは全て行うことが出来ます。しかし、これが
全てではありません。
</para>
<para>
PHPスクリプトが使用される場所は主に2つあります。
<itemizedlist>
<listitem>
<simpara>
サーバーサイドでのスクリプティング。これは幅広く使われていて
PHPの中心となる分野です。ここでPHPを動作させるには
3つのものが必要です。PHPパーサ(CGIもしくはサーバーモジュール)、
ウェブサーバー、そしてブラウザです。これらはいずれもローカルマシンで
実行して PHP プログラミングを試すことができます。
<link linkend="install">インストール手順</link>の章に詳しい
情報があります。
</simpara>
</listitem>
<listitem>
<simpara>
コマンドラインでのスクリプティング。PHPスクリプトは
サーバーもブラウザも無しで動作させるようにすることも出来ます。
この場合、PHPパーサだけが必要となります。このタイプは
<command>cron</command>(Unix および macOS) やタスクスケジューラ(Windows)を使用して
一定間隔で スクリプトを実行したい場合や、ちょっとした文書処理を
行うのに最適な方法です。<link linkend="features.commandline">
コマンドラインでPHPを使う</link>の章に詳しい情報があります。
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
PHPは Linux, 多くのUnix系システム(HP-UX, Solaris, OpenBSD等),
Microsoft Windows, macOS, RISC OS, その他全ての有名なOSで
<link linkend="install">動作します</link>。
PHPはまた現在使用されているほとんど全てのウェブサーバーを
サポートします。Apache や IIS、その他多くのサーバーをです。
また、FastCGI PHP バイナリを使える lighttpd や nginx
などにも対応しています。PHP はモジュールとしても動作しますし、
CGI としても動作します。
</para>
<para>
つまり、PHPでは開発者が OS とウェブサーバーを自由に選ぶことができます。
さらには手続き型プログラミングかオブジェクト指向プログラミングか、
もしくはそれらを混在させるかといった選択を行うこともできます。
</para>
<para>
PHP は HTML を出力するだけではありません。PHP はリッチなファイルタイプ、
たとえば 画像やPDFファイルを出力する機能を備えていますし、
データを暗号化したり、メールを送信することもできます。
また、JSON や XML のような任意のテキストも簡単に出力できます。
これらのファイルを自動生成したり、
印刷する代わりにファイルシステムに保存したり、
動的なコンテンツのためにサーバー側でキャッシュすることも出来ます。
</para>
<para>
PHP の機能の中で最も強力で優れているのは、
<link linkend="refs.database">広範なデータベースをサポートしている</link>
ことでしょう。データベース機能を用いたWebページの作成は非常に簡単です。
データベースごとに用意された拡張モジュール (e.g., for <link linkend="book.mysqli">mysql</link>)
を使うこともできれば <link linkend="book.pdo">PDO</link> のような抽象化レイヤーを使うこともでき、
ODBC に対応しているデータベースなら <link linkend="book.uodbc">ODBC</link>
拡張モジュールを使って接続することもできます。その他には、
<link linkend="book.curl">cURL</link> あるいは <link linkend="book.sockets">ソケット</link>
を使う CouchDB のような例もあります。
</para>
<para>
PHP は、IMAP、SNMP、NNTP、POP3、HTTP、COM (Windowsのみ) やその他
数え切れない程多くのプロトコルを用いる他のサービスの状態を追跡する
機能もサポートしています。低レベルのネットワークソケットをオープンし、
他のプロトコルを用いて通信を行うことも可能です。また、PHPはWDDXを
サポートし、基本的に全てのウェブプログラミング言語間で複雑なデータ交換
を行うことができます。相互接続機能としては、他にJavaオブジェクトの
インスタンスを作成してそれをPHPのオブジェクトとして透過的にアクセス
する機能があります。
</para>
<para>
PHP には便利な <link linkend="refs.basic.text">テキスト処理</link> 機能が用意されています。
Perl 互換の正規表現 (<link linkend="book.pcre">PCRE</link>) や、
<link linkend="refs.xml">XML 文書のパースや XML 文書へのアクセス</link>
のための数多くの拡張モジュール・ツールなどです。PHP の XML 関連の拡張モジュールはすべて
<link linkend="book.libxml">libxml2</link> をベースとしており、その機能を継承して
<link linkend="book.simplexml">SimpleXML</link> や
<link linkend="book.xmlreader">XMLReader</link>、そして <link linkend="book.xmlwriter">XMLWriter</link>
がサポートされています。
</para>
<para>
他にも興味深い拡張モジュールがあり、
<link linkend="extensions">アルファベット順</link> および <link linkend="funcref">カテゴリ別</link>
のページで調べることができます。またさらに、<link linkend="install.pecl.intro">PECL 拡張モジュール</link> の中には
<link xlink:href="&url.xdebug;">XDebug</link>
などのように PHP のマニュアルに記載されていないものもあります。
</para>
<para>
このページだけではPHPの機能やPHPを使用することの利点を全て
紹介することはできません。<link linkend="install">PHPのインストール
</link>の章を読んでみてください。紹介された拡張モジュールに関しては<link
linkend="funcref">関数リファレンス</link>を読んでみてください。
</para>
</section>
</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:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->