<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/getting-started.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'introduction.php',
    1 => '入門',
    2 => 'PHP は何ができるものですか?',
  ),
  'up' => 
  array (
    0 => 'getting-started.php',
    1 => 'はじめに',
  ),
  'prev' => 
  array (
    0 => 'getting-started.php',
    1 => 'はじめに',
  ),
  'next' => 
  array (
    0 => 'tutorial.php',
    1 => '簡易チュートリアル',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'chapters/intro.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="introduction" class="chapter">
  <div class="info">
   
   <h1 class="title">PHP は何ができるものですか?</h1>

  </div>

  <div id="intro-whatis" class="section">
   <h2 class="title">PHP とはなんでしょう?</h2>
   <p class="simpara">
    <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> (<em>PHP: Hypertext Preprocessor</em>
    を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。
    PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
   </p>
   <p class="para">
    で、結局のところどういう意味なのでしょう? 以下に例を示します。
   </p>

   <p class="para">
    <div class="example" id="example-1">
     <p><strong>例1 初歩的な例</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />    &lt;head&gt;<br />        &lt;title&gt;Example&lt;/title&gt;<br />    &lt;/head&gt;<br />    &lt;body&gt;<br /><br />        <span style="color: #0000BB">&lt;?php<br />            </span><span style="color: #007700">echo </span><span style="color: #DD0000">"Hi, I'm a PHP script!"</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">?&gt;<br /></span><br />     &lt;/body&gt;<br />&lt;/html&gt;</span></code></div>
      </div>

    </div>
   </p>
   <p class="para">
    HTMLを出力するために多くのコマンドを記述する (C や Perl のように)
    代わりに、PHP のページは <span class="replaceable">何か</span>
    (この例では、<span class="computeroutput">Hi, I&#039;m a PHP script!</span> と出力)
    を行うコードを HTML に埋め込むことになります。
    PHP のコードは特別な <a href="language.basic-syntax.phpmode.php" class="link">開始および終了の処理命令
    <code class="code">&lt;?php</code> と <code class="code">?&gt;</code></a>
    で囲まれており、これによって <q class="quote">PHP モード</q> の切り替えを行います。
   </p>
   <p class="para">
    PHP がクライアントサイド JavaScript のようなものと異なっている点は、
    コードがサーバーで実行され、その結果がクライアントに送信されるということです。
    クライアントは、スクリプトを実行した結果を受け取りますが、
    その出力を作成したコードがどんなものなのかを知ることはできません。
    全てのHTMLファイルをPHPで処理するようにWebサーバー
    を設定することさえ可能で、この場合、ユーザーはPHPが動いていることすら
    知ることができません。
   </p>
   <p class="para">
    PHPを使用する上で最も優れている点は、初心者に対しては非常に分かり
    やすいと同時に、プロフェッショナルのプログラマに対しては多くの進んだ
    機能を提供している点です。PHPの機能を羅列した長い一覧表を読まなけ
    ればならないのかと心配する必要はありません。PHPは誰でもすぐに始められま
    すし、時間を掛けずに簡単なスクリプトが書けるようになります。
   </p>
   <p class="para">
    PHPを使用した開発ではサーバーサイドでの動作に焦点が当てられますが、
    他にも多くのことが可能です。<a href="introduction.php#intro-whatcando" class="link">
    PHPにできることは?</a>まで読み進めてみてください。
    Webプログラミングのみに関心がある場合には、<a href="tutorial.php" class="link">
    簡易チュートリアル</a>に進んでください。
   </p>
  </div>

  <div id="intro-whatcando" class="section">
   <h2 class="title">PHPにできることは?</h2>
   <p class="para">
    あらゆることができます。PHPでは主にサーバーサイドでの活用に焦点が
    当てられているため、フォームからデータを取得したり、動的にページ
    の内容を生成したり、クッキーを送信・受信するといった他のCGI
    プログラムに出来ることは全て行うことが出来ます。しかし、これが
    全てではありません。
   </p>
   <p class="para">
    PHPスクリプトが使用される場所は主に2つあります。
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       サーバーサイドでのスクリプティング。これは幅広く使われていて
       PHPの中心となる分野です。ここでPHPを動作させるには
       3つのものが必要です。PHPパーサー(CGIもしくはサーバーモジュール)、
       ウェブサーバー、そしてブラウザです。これらはいずれもローカルマシンで
       実行して PHP プログラミングを試すことができます。
       <a href="install.php" class="link">インストール手順</a>の章に詳しい
       情報があります。
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       コマンドラインでのスクリプティング。PHPスクリプトは
       サーバーもブラウザも無しで動作させるようにすることも出来ます。
       この場合、PHPパーサーだけが必要となります。このタイプは
       <strong class="command">cron</strong>(Unix および macOS) やタスクスケジューラ(Windows)を使用して
       一定間隔で スクリプトを実行したい場合や、ちょっとした文書処理を
       行うのに最適な方法です。<a href="features.commandline.php" class="link">
       コマンドラインでPHPを使う</a>の章に詳しい情報があります。
      </span>
     </li>
    </ul>
   </p>
   <p class="para">
    PHPは Linux, 多くのUnix系システム(HP-UX, Solaris, OpenBSD等),
    Microsoft Windows, macOS, RISC OS, その他全ての有名なOSで
    <a href="install.php" class="link">動作します</a>。
    PHPはまた現在使用されているほとんど全てのウェブサーバーを
    サポートします。Apache や IIS、その他多くのサーバーをです。
    また、FastCGI PHP バイナリを使える lighttpd や nginx
    などにも対応しています。PHP はモジュールとしても動作しますし、
    CGI としても動作します。
   </p>
   <p class="para">
    つまり、PHPでは開発者が OS とウェブサーバーを自由に選ぶことができます。
    さらには手続き型プログラミングかオブジェクト指向プログラミングか、
    もしくはそれらを混在させるかといった選択を行うこともできます。
   </p>
   <p class="para">
    PHP は HTML を出力するだけではありません。PHP はリッチなファイルタイプ、
    たとえば 画像やPDFファイルを出力する機能を備えていますし、
    データを暗号化したり、メールを送信することもできます。
    また、JSON や XML のような任意のテキストも簡単に出力できます。
    これらのファイルを自動生成したり、
    印刷する代わりにファイルシステムに保存したり、
    動的なコンテンツのためにサーバー側でキャッシュすることも出来ます。
   </p>
   <p class="para">
    PHP の機能の中で最も強力で優れているのは、
    <a href="refs.database.php" class="link">広範なデータベースをサポートしている</a>
    ことでしょう。データベース機能を用いたWebページの作成は非常に簡単です。
    データベースごとに用意された拡張モジュール (e.g., for <a href="book.mysqli.php" class="link">mysql</a>)
    を使うこともできれば <a href="book.pdo.php" class="link">PDO</a> のような抽象化レイヤーを使うこともでき、
    ODBC に対応しているデータベースなら <a href="book.uodbc.php" class="link">ODBC</a>
    拡張モジュールを使って接続することもできます。その他には、
    <a href="book.curl.php" class="link">cURL</a> あるいは <a href="book.sockets.php" class="link">ソケット</a>
    を使う CouchDB のような例もあります。
   </p>
   <p class="para">
    PHP は、IMAP、SNMP、NNTP、POP3、HTTP、COM (Windowsのみ) やその他
    数え切れない程多くのプロトコルを用いる他のサービスの状態を追跡する
    機能もサポートしています。低レベルのネットワークソケットをオープンし、
    他のプロトコルを用いて通信を行うことも可能です。また、PHPはWDDXを
    サポートし、基本的に全てのウェブプログラミング言語間で複雑なデータ交換
    を行うことができます。相互接続機能としては、他にJavaオブジェクトの
    インスタンスを作成してそれをPHPのオブジェクトとして透過的にアクセス
    する機能があります。
   </p>
   <p class="para">
    PHP には便利な <a href="refs.basic.text.php" class="link">テキスト処理</a> 機能が用意されています。
    Perl 互換の正規表現 (<a href="book.pcre.php" class="link">PCRE</a>) や、
    <a href="refs.xml.php" class="link">XML 文書のパースや XML 文書へのアクセス</a>
    のための数多くの拡張モジュール・ツールなどです。PHP の XML 関連の拡張モジュールはすべて
    <a href="book.libxml.php" class="link">libxml2</a> をベースとしており、その機能を継承して
    <a href="book.simplexml.php" class="link">SimpleXML</a> や
    <a href="book.xmlreader.php" class="link">XMLReader</a>、そして <a href="book.xmlwriter.php" class="link">XMLWriter</a>
    がサポートされています。
   </p>
   <p class="para">
    他にも興味深い拡張モジュールがあり、
    <a href="extensions.php" class="link">アルファベット順</a> および <a href="funcref.php" class="link">カテゴリ別</a>
    のページで調べることができます。またさらに、<a href="install.pecl.intro.php" class="link">PECL 拡張モジュール</a> の中には
    <a href="http://xdebug.org/" class="link external">&raquo;&nbsp;XDebug</a>
    などのように PHP のマニュアルに記載されていないものもあります。
   </p>
   <p class="para">
    このページだけではPHPの機能やPHPを使用することの利点を全て
    紹介することはできません。<a href="install.php" class="link">PHPのインストール
    </a>の章を読んでみてください。紹介された拡張モジュールに関しては<a href="funcref.php" class="link">関数リファレンス</a>を読んでみてください。
   </p>
  </div>

 </div>
<?php manual_footer($setup); ?>