mirror of
https://github.com/php/doc-ja.git
synced 2026-03-23 22:52:11 +01:00
Closes #310 Co-authored-by: KentarouTakeda <4785040+KentarouTakeda@users.noreply.github.com>
204 lines
11 KiB
XML
204 lines
11 KiB
XML
<?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:
|
|
-->
|