集中企画

PHP: Hypertext Preprocessor

無料サービス、ホスティング対応情報も満載！

今日からはじめる

PHP

近頃、プロのウェブ製作者の間で話題になっているのが、PHP というスクリプト言語だ。PHP はこれま
でのCGIやPerlよりも簡単であるにもかかわらず、データベースと連携した大規模なサイト構築にも対応できる豊富な機能を備えている。いままでCGIを使ってきた人はもちろんのこと、これからCGIを覚えよ
うとしている人も、今日からはPHPをマスターしてワンランク上のウェブ作成方法を身につけよう。
宮本和明＋編集部

162 INTERNET magazine 2001/6

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D簡 単 便 利 なウェブスクリプト

これからのスクリプトはThat's PHP
1PHPはHTMLファイルに組み込める
PHPではスクリプトをHTMLファイルの中に直接記述できるので、CGI に比べて管理が簡単になる。

PHP で決まりだ！
PHPで管理が簡単に
PHP は、これまでのCGIに代わるスクリプト言語として、ウェブ製作者の間で注目を集めている。PHPがこれまで

HTMLファイルの中に直接スク
リプトを書く形式。HTMLとス
クリプトの部分がキレイに分かれているため、ソースは読みやすい。

実際にユーザーがアクセスすると、PHP のス
クリプト部分はHTML に置き換わるので、ユーザーにスクリプトが見えない。

<html><head><title> 〜 </title></head><body>
あなたで<?php$filename = "count.dat";$file = fopen($filename, "r");HTML の中にそのまま記述できる点にある。

〜のCGI と大きく異なるのは、スクリプトがPHP

2スクリプト部分がHTMLに置き換わる

PHP の実際の記述例は、右の1 のように

?>
人目です。

←この部分は通常の HTML←この部分が PHP のスクリプトなる。ファイル中の「<?php」から「?>」の間がPHPのスクリプトで、この部分はサー1count.php

バー側で実行されたプログラムの結果に置き換わる。それ以外の部分は普通のHTMLファ
イルと変わらない。これがなぜ便利なのかは、

CGIHTML タグも、すべてPerl のスクリプトとし#!/usr/local/bin/perl
print "Content-type: text/html¥n¥n";
print "<html>¥n";print "<head><title> 〜 </title></head>¥n";print "<body>¥n";print "あなたで";$filename = 'count.dat';
open(READ, $filename) || &error("Error");て記述しなければならないため、PHPに比べ

print "人目です。¥n";

多くのCGIで使われているPerlで1と同じような動作をするスクリプトを記述すると2のようになる。<head> や<body> といったスクリプトを直接実行する形
式。ほとんどの CGI は Perl という言語で書かれる。HTMLの部分はスクリプトで書かなければならなず、ソースは読みにくい。

て複雑になってしまうのがわかるだろう。

2count.cgi

こうした問題は、SSI を使えばある程度は解消できる。SSIでは3のようにHTML中に「<!--$exec 〜>」として呼び出すスクリプトを指定して、スクリプトそのものは4 のように別のファイルとして記述する方式だ。この方式であればHTML とスクリプトは分離できるので、それぞれのファイルはわかりやすくなる。ただし、ファイルが別々になったぶんだ← HTML もスクリプトとして記述する〜

CGI と比べてみるとよくわかる。

SSI
HTMLファイルからスクリプトを呼び出す形式。ソースは読みやすくなるが、ファイルが2つになってしまうので、管理がやや面倒になる。

<html><head><title> 〜 </title></head><body>
あなたで<!--#exec cmd="count.pl"> ←外部のスクリプト（count.pl）を呼び出す人目です。

3index.shtml

け、ページ数が増えるとそれだけ管理は面倒
PHPは、CGIよりも記述が簡単で、SSIよりも管理が楽になる。これがPHPを使う最大のメリットだと言える。

#!/usr/local/bin/perl$filename = 'count.dat';
open(READ, $filename) || &error("Error");←スクリプトは別のファイルに記述する

〜

になる。

4count.pl

インターネットマガジン／株式会社インプレスR&D

SSI（エス・エス・アイ／ Server Side Include）：HTML ファイルのなかにコマンド（ウェブサーバーへの指示）を埋め込む形式。HTML ファイルからCGIのプログラムを呼び出す
場合などに用いる。
©1994-2007 Impress R&D

INTERNET magazine 2001/6

163

最 新 スクリプトを今 日 から使 う

How to use PHP

PHP
の
実行環境を

1PHPは対応していない
ウェブサーバーでは使えない
PHPが使えるのは、PHPがインストールされているウェブサーバーのみ。残念ながら、プ
ロバイダーのホームページサービスでPHP の使えるところはほとんどない。

2オススメは無料サーバー
無料レンタルサーバーのなかには、PHP が使える業者もある。まずはこうしたサービスで手に入れよう

PHPの使い方を覚えるのが簡単だ。

ホスティングサービスを使う
CGIと違い、PHPはウェブサーバーと一体化して動作するため、ウェブサーバ
ーにPHPがインストールされていなければ、PHPは使えない。残念ながら、現在のところプロバ
イダーの個人ホームページサービスでは、PHP に対応しているところは皆無と言ってもいい状況だ。PHP を使いたい場合には、まずはPHP に対応したウェブサーバーを探さなければならない。

CGIの場合Apache、
IISなど

まず、候補として挙げられるのがホスティング
サービスだ。PHPに対応しているホスティングサ
ービスはまだあまり多くはないものの、下に示す

Perl

ように個人でも利用できる価格帯のサービスも増えてきている。

スクリプト

ウェブサーバーブラウザー

独自ドメインを使いたいという理由で、個人でPHPの場合もホスティングサービスを使うユーザーは増えて

Apache、IISなどいる。現在、ホスティングサービスを検討してい
るなら、これからはディスク容量やCGI だけでな
ておこう。

スクリプト

PHP
モジュール

く、PHPにも対応しているかどうかをチェックし外部のプログラム（Perlなど）を呼び出す
CGIと違い、PHPはウェブサーバーに組み込まれた形で動く。そのため、PHPのモジュールが組み込まれていないウェブサーバーではPHPは動かない。

ウェブサーバー

ブラウザー

PHPが使えるおもなホスティングサービス
名称

ホームページAKIRAインターネット

www.akira.ne.jp

容量10Mバイト

Kagoya Internet Routing

www.kagoya.net

100Mバイト

月額 2,500円

PostgreSQL（オプション料金・月額 1,000円）

NSP Network Service

www.nspnet.ne.jp

30Mバイト月額 3,000円

PostgreSQL

SPPD

www.sppd.ne.jp

Webhosting.co.jp

www.webhosting.co.jp

料金

利用可能なSQL

月額 1,200円

MySQL、PostgreSQL

10Mバイト月額 1,000円

PostgreSQL（オプション料金・月額 1,000円）

200Mバイト

月額 3,900円

MySQL、mSQL

YI-WEBwww.yi-web.ne.jp

30Mバイトアイル

home.isle.ne.jp

100Mバイトペンギンインターネット

www.penguin.ne.jp

50Mバイト

年額 80,000円

PostgreSQL

ラピッドサイトwww.rapidsite.co.jp

175Mバイト

月額 10,000円

mSQL

164 INTERNET magazine 2001/6

月額

500円

月額 7,900円〜

PostgreSQL（ビジネスコース・月額 1,980円）
PostgreSQL

インターネットマガジン／株式会社インプレスR&D

ホスティングサービス：ウェブサーバーやメールサーバーなど、インターネット用のサーバーをユーザーに貸し出すサービスのこと。サーバーマシンそのものを貸し出すのではなく、サーバーが利用できる権限（ユーザー名やパスワード）をユーザーに貸し出す形になる。
©1994-2007 Impress R&D

PHP: Hypertext Preprocessor

無料のレンタルサーバーを使う

1 今回は無料レンタルサーバーのなかからDatablocksの利用方法を紹介する。
ユーザー登 録 は、ホームページの「TheFree Package!」欄の「Place Your Order」
をクリックする。

さらに手軽にPHP を使ってみたいという人におすすめなのが、無料でhosting.datablocks.net

ホームページ用のディスクスペースを貸してもらえるレンタルサーバーサービスだ。さすがにPHP が使える無料レンタルサーバーは数が少ないが、それでも下に挙げたようにいくつかの業者が無料でPHPの使えるサーバーを提供している。
もちろん、こうしたサービスの場合には、ホームページにバナー広告が出たり、定期的にアンケートに答えなければならないといった制限は存在する。しかし、まずPHPがどのようなものかを試してみるには、無料で試せる
こうしたサービスがうってつけだ。今回の記事を読んでPHPを実際に試してみたいと思ったら、まずはこうした無料サービスに申し込
んでみることから始めよう。
2名前、住所、自分のメールアドレ
ス、希望するユーザー名などを入力する。登録が完了すると、確認用のメールが届く。

自分でサーバーを立ち上げる
さらにPHP をじっくりと使ってみたいという人には、自分でPHP対応のサーバーを立ち上げてしまうのもいいだろう。インストールは少々面倒だが、ウィンド3ウェブブラウザーで、届いたメールに記載されているURLにアクセスする。数十秒ほどして、左のような画面になれば登録はすべて終了だ。あとは、FTPサーバーやメールサーバーなどが記述されたメールが届くので、これを使ってホームページが作れる。

ウズ98 のような普通のパソコン用 OS でもPHPを動かすことは可能だ。誰にでもおすすめできるわけではないが、挑戦してみたいという人は、172 ページにインストール方法を解説したので、試してみてほしい。

PHPが使えるおもな無料レンタルサーバー
名称

ホームページSpaceports

www.spaceports.com

容量
無制限

ユーザーが利用できるURL

利用可能なSQL

備考**.spaceports.com/˜ユーザー名/

MySQL

Datablocks

hosting.datablocks.net

月間転送量 20Gバイトまで

20Mバイト

ユーザー名.datablocks.net

MySQL

freedom2surf
PORT5

www.freedom2surf.net

20Mバイトwww.ユーザー名.f2s.com

MySQL、PostgreSQL

www.port5.com

15Mバイト

ユーザー名.port5.com

MySQL

MILLTO CLUBwww.millto.net

5Mバイト**.millto.net/˜ユーザー名/

MySQL

インターネットマガジン／株式会社インプレスR&D

バナー広告：「バナー」のもともとの意味は「横断幕」。ホームページ上に表示される、横長の四角形に収まるように作られた広告・宣伝用の画像のことを指す。ロゴや動画を見て興味をひかれた人々がアクセスしやすいように、リンクを張っていることが多く、ウェブ上における宣伝の手段として広く使われている。
©1994-2007 Impress R&D

日本語サイトINTERNET magazine 2001/6

165

まずは基 本 的 なスタイルを理 解 する

PHP を

Script Guide
1ファイルの拡張子は「.php」
PHP のファイルは「index.php」のように、拡張子を「.php」とする。

2スクリプトは「<?php 〜 ?>」で囲む

使ってみようHTML部分はそのまま書いて、PHPスクリプ

初級編「print "〜"」とすると、その文字列が表示さトの部分を「<?php 〜 ?>」で囲む。

3文字列の表示は「print」
れる。

文字列を表示するスクリプト
それでは、さっそくPHP を実際に使ってみよう。まずは、もっとも簡単な文字列を表示するスクリプトだ。右の「print.php」が、実際のPHP のスクリプトファイルだ。
PHP のファイルは「.php」という拡張子になる（サーバーによっては「.php3」の場合もある）。
このファイルを、FTP でサーバーにアップロードする。前ペー<html><head><title>TEST print</title></head>←このあたりは通常の HTML と同様<body>

ジで紹介した「Datablocks」の場合には、FTP サーバーは「ftp.datablocks.net」、アップロードするディレクトリーは「web」だ。アップロードが終わったら、ウェブブラウザーで「http://ユーザー名.datablocks.net/print.php」にアクセスしてみよう。
「PHP のテスト」と表示されれば成功だ。

<?php
print "PHP のテスト";?>←スクリプト開始←文字を表示するには、print "〜"とする←スクリプト終了</body></html>←ここも通常の HTML と同様

print.php

インストールされているPHPの情報を見る
PHP では「<?php」から「?>」の間がスクリプトとして解釈される。
さきほどのスクリプトでは、文字列を表示する「print」を使ったが、これだけならわざ
わざPHP を使う必要もないし、あまりメリットも感じられないだろう。
そこで、もう少し派手な動作をするスクリプト「phpinfo.php」を試してみよう。さきほどのスクリプトとほとんど変わらないように見えるが、実際に表示させてみると驚くほど複雑なページになるだろう。
<html>

ファイル中では「phpinfo();」 <head><title>TEST phpinfo</title></head>になっている部分が、サーバー <body>
側でPHPのインフォメーションに置き換えられるため、このよ
うな表示になるのだ。

<?php
phpinfo(); ←この部分が、PHP のインフォメーションに置き換わる?>

日本語のスクリプトが文字化けする場合には、PHP
ファイルの漢字コードをEUCに変換してみよう。そ</body></html>

れでもダメな場合には、日本語が使えないサーバー

phpinfo.php

166 INTERNET magazine 2001/6

h文字化けした場合はなので、残念ながらあきらめるしかない。

インターネットマガジン／株式会社インプレスR&D

FTP（エフ・ティー・ピー／ File Transfer Protocol）：インターネットでファイルを転送する手順を定めたプロトコル。ホームページ用のHTMLファイルを、ウェブサーバーにアップロードする際などに用いられる。 ©1994-2007 Impress R&D

PHP: Hypertext Preprocessor

使用しているブラウザー名を表示する
PHP を使えば、アクセスしてきたユーザーの環境も簡単に調べられる。
右の「predef.php」は、アクセスしてきたユーザーのブラウザーの種類を表示するスクリプトだ。こうしたユーザー情報をCGI で表示させるには面倒なプログラムが必要となるが、PHPであれば「$HTTP̲USER̲AGENT」という変数が用意されている。ここでは、この変数をprint 文で表示しているだけの簡単<html><head><title>TEST phpinfo</title></head><body><?php
print "ブラウザー名 $HTTP_USER_AGENT";?></body></html>predef.php

なスクリプトになっている。

←変数は print のなかに直接書ける

このほかにも、ユーザーのIP アドレスや、

hその他の環境変数「HTTP̲USER̲AGENT」以外にも、以下のような環境変数が利用できる。

どのページからアクセスしてきたかを表す変数

・ HTTP̲REFERERがあるので（囲み参照）、「$ 〜」の部分を置

リンク元のURLを表す環境変数。

き換えて試してみよう。

どのページからアクセスしてきたかがわかる。
・ REMOTE̲ADDR
アクセスした人のIPアドレスを表す環境変数。

こうしたユーザー情報を使
えば、ブラウザーによって表示されるページを変えるという動作も簡単にできる。
右の「browser.php」がその例で、スクリプト全体は「if 〜 elseif 〜 else 〜 endif」という構造になっていて、条件（ブラウザーの種類）によって表示される内容が変化する<html><head><title>TEST browser check</title></head><body>↓ if 文はコロン（:）で終わる<?php if(ereg("MSIE", $HTTP_USER_AGENT)) : ?>← if（MSIE なら以下を表示）<h1>MSIE 用のページ </h1>
MSIE でアクセスすると、ここが表示されます。<BR>
普通に HTML で書けるので、とてもラクです。<BR>←この部分は HTML のまま〜

ブラウザーの種類ごとに表示するページを変える↓ elseif 文もコロン（:）<?php elseif(ereg("Netscape", $HTTP_USER_AGENT) ) : ?> ← elseif（Netscape なら以下を表示）ようになっている。
「<?php 〜 ?>」という形で何回も登場している点だ。このように、ファイル全体はスクリプトとして解釈されるが、HTML の部分はそのまま書けばいいというのが、PHP を使う
大きなメリットである。

<h1>Netscape 用のページ </h1>
Netscape でアクセスすると、ここが表示されます。<BR>
ここも普通に HTML で書けばいいので、とてもラクです。<BR>〜

注目してほしいのは、PHP のスクリプトが↓ elseif 文もコロン（:）<?php else : ?>← else（それ以外なら以下を表示）<h1> その他のページ </h1>
MSIE、Netscape 以外でアクセスすると、ここが表示されます。<BR>
ここも普通に HTML で書けば大丈夫です。<BR>〜hブラウザーの判別方法
そのほかのブラウザーを判別するには、スク↓ endif 文はセミコロン（;）<?php endif ; ?>← endif（if 文終了）

リプトの「MSIE」や「Netscape」の部分を以下のように変えればよい。

</body></html>・ iモード「DoCoMo」
・ J-PHONE「J-PHONE」

browser.php

・ドリームキャスト「DreamPassport」
・ザウルス「sharp pda browser」

インターネットマガジン／株式会社インプレスR&D

IP アドレス：インターネットに接続されたコンピュータに対して、それぞれを識別するために割り当てられる番号のこと。
「192.168.0.1」といった4 つの数字とピリオドで表記するのが一般的。
©1994-2007 Impress R&D

INTERNET magazine 2001/6

167

複 雑 な処 理 も CGI より簡 単

Script Guide

PHPを

1フォームからの入力
フォームに入力された項目は、フォームタグ
の「name」で指定した名前と同じ変数名で参照できる。

2外部のファイルを参照する

使ってみよう「include("ファイル名")」とすると、別のスク
リプトファイルを読み込める。同じスクリプ
トを何回も利用する場合には、スクリプトを分けておくと便利だ。

中級編

フォームの使い方をマスターするフォームに入力された内容をもとに、表示される内容を変更するというのは、CGIでも基本的な動作だ。しかし、CGIでフォームを扱う際にはかなり複雑な手続きが必要となるのに対して、PHP ではとても簡単にフォームの入力内容を参照できる。
まずは、フォームの入力を行う「form.html」を見てみよう。HTML では、<form> タグのなかでフォームを解釈するスクリプトを「action="〜"」として指定する。
呼び出されるスクリプトは「form.php」のようになる。PHPではフォームの「name」で指定した名前の変数に、入力された内容が格納されるようになっている。フォームで「name="username"」となっている項目は、「$username」という変数で参照できるという仕組みだ。
これと同じことをPerl でやろうとすると、フォーム解析用のスクリプトが必要になり、かなり複雑になってしまう。PHPはホームページ用に開発された言語なので、特にこうした操作が簡単にできるのである。

<html><head><title> フォームのテスト </title></head><body><h2> フォームの送信テスト </h2><form method="post" action="form.php">← form.php を呼び出す
名前<input type="text" name="username" size="20"><br>
メールアドレス<input type="text" name="mailaddr" size="40"><br><input type="submit" value="送信"></form></body></html>form.html<html><head><title> フォームの結果 </title></head><body><h2> フォームの送信結果 </h2><?php
print "あなたの名前： $username<br>¥n";print "メールアドレス： $mailaddr<br>¥n";?></body></html>←「name」で指定した名前がそのまま変数として使える

form.php

168 INTERNET magazine 2001/6

インターネットマガジン／株式会社インプレスR&D

フォーム：ホームページにおけるデータの入力欄のこと。ユーザーがフォームにデータを入力して「送信」ボタンを押すと、ウェブサーバーにデータが送信される。ウェブサーバーはCGI などにより、送信されてきたデータを処理する。
©1994-2007 Impress R&D

PHP: Hypertext Preprocessor

1行コメントを表示する
それでは、フォームに入力された内容をもとに、トップページにコメン
トを表示するスクリプトを作ってみよう。
まずはコメントを入力するスクリプト「post.php」を見てみよう。ここではフォームに入力された内容を、別のテキストファイルに保存する動作を行っている。このスクリプト
では、フォームを処理するスクリプトとして自分自身を呼び出して、コメント欄になにかが入力されている場合のみ、ファイルに書き込みを行うようになっている。
また、コメントを表示するスクリプトは「disp.php」として分離している。スクリプト
内で別のスクリプトを呼び出す場合には、「include("ファイル名")」とすればよい。
disp.phpは、コメントのファイルを読み込
んでprint 文で表示するスクリプトだ。
こうしてスクリプトを分離しているのは、実際にコメントを表示するページ（top.
php）で再利用するためである。このように、同じスクリプトを何度も使う場合には、
スクリプトを分けてinclude を使うのが便利だ。

<html><head><title> コメント書き込み </title></head><body><?php
if($comment != ""):
$filename = "comment.txt";$file = fopen($filename, "w");fwrite($file, $comment);
fclose($file);
endif;?>←書き込みの有無をチェック（$comment）←コメントを記録するファイル名←ファイルを開く（書き込む場合は"w"）←コメントを書きこむ←ファイルを閉じる<form method="post" action="post.php">
コメント<input type="text" name="comment" size="50"><input type="submit" value="送信"></form>←自分自身を呼び出す

現在のコメント文： <?php include("disp.php"); ?>←コメント文を表示</body></html>post.php<?php$filename = "comment.txt";←コメントを記録するファイル名$file = fopen($filename, "r");←ファイルを開く（読み込む場合は"r"）$data = fread($file, filesize($filename)); ←ファイルからデータを読み込む
print $data;←データを表示する
fclose($file);←ファイルを閉じる?>

disp.php〜<html><head><title> トップページ </title></head><body><h2>PHP のページ </h2>[今日のコメント]<br><?php include("disp.php"); ?><br> ←コメント文を表示<br>[メニュー]<br><a href="whatsnew.php"> 最新情報 </a><br><a href="info.php"> ごあんない </a><br></body></html>top.php

インターネットマガジン／株式会社インプレスR&D

テキストファイル：内容が文字（アルファベット、数字、漢字など）だけで構成されているファイルのこと。これに対して、画像ファイルや音楽ファイルなどは「バイナリーファイル」と呼ばれる。
©1994-2007 Impress R&D

INTERNET magazine 2001/6

169

複 雑 な処 理 も CGI より簡 単

PHPを

Script Guide
1ファイルの読み書き
ファイルの読み出しと書き込みを同時に行う
場合には、fopenのモードを"r+"とする。

2データベースとの連携
PHPは、MySQLやPostgreSQLといったデ使ってみようータベースサーバーと組み合わせて使いやすいように作られている。ただし、SQL サーバ
ーの使い方はあまり簡単ではない。

上級編

アクセスカウンターを設置する
それでは、CGI では定番のアクセスカウンターをPHPでも作ってみよう。かなり複雑になってきたが、この程度の<html><head><title> アクセスカウンター </title></head><body><h2> アクセスカウンター </h2>

行数のスクリプトでアクセスカウンターが実現できるのも、PHP ならではの特徴だ。
PHP で外部のファイルを扱う際には、だいたいこのスクリプトのような動作が基本的な流れになるので、ほかのスクリプトを作る
際にも参考になるだろう。このスクリプトでは、カウンターのファイルから、アクセス数と前回アクセスのあったIPアドレスを読み込
んで、前回のIP アドレスと今回のIP アドレスを比較して、異なっていれば数値に1を足して、再度ファイルに格納するという流れになっている。このスクリプトでは読み込んだ

あなたは
<?php
←アクセス数を記録するファイル名$filename = "count.dat";$file = fopen($filename,"r+");←ファイルを「読み書き」モードで開く
flock($file, 2);←ファイルロック開始$count = chop(fgets($file, 20));←ファイルから 1 行目を読み込む（chop は行末の改行コードを取るため）$prev = fgets($file, 20);
←ファイルから 2 行目を読み込む
if($prev != $REMOTE_ADDR) $count++; ←前回と違う IP アドレスならプラス 1
print $count;←アクセス数を表示する
rewind($file);←ファイルの先頭にもどる
fwrite($file, "$count¥n");← 1 行目にカウンターの数値を書き込む
fwrite($file, $REMOTE_ADDR);← 2 行目に IP アドレスを書き込む
ftruncate($file, ftell($file));←ファイルの書き込みを終了する
flock($file, 3);←ファイルロック終了
fclose($file);←ファイルを閉じる?>
人目です。

ファイルを上書きしているので、ファイルを開く「fopen」コマンドでは、ファイルのオープンモードに「r+」を指定している。

</body></html>counter.php

hスクリプトがうまく動かないときはPHP スクリプトに間違いがあった場合には、右のようなエラー画面が表示される。CGI の場合には単にエラーであるというメッセージしか出ないが、PHPの場合には上から何行目でエラーになったかが表示される。このため、PHP はスクリプトの間違いを修
正しやすいというメリットもある。

170 INTERNET magazine 2001/6

インターネットマガジン／株式会社インプレスR&D

PHPのエラーメッセージ。
ここでは、上から23行目
でエラーが出ていることがわかる。

アクセスカウンター：ホームページにおいて、そのページがいままでに何回表示されたかを表示する仕組み。プログラムとしては、現在の回数をファイルに保存しておき、アクセスのあった時点でそのファイルを読み込み、1をプラスして画面に表示するとともにファイルを保存しなおすという流れになる。
©1994-2007 Impress R&D

PHP: Hypertext Preprocessor

データベースと連携したスクリプトを作る
最後に、PHPの特徴であるデータベースと連携したスクリプトを紹介しよう。ここでは、無料でPHP が利用できるレンタルサーバー「Datablocks」での設置方法を紹介する。Datablocks
ではデータベースとしてMySQL が利用でき、MySQL の管理はウェブ上でできるようになっているので、図の1 と2 の操作を行ったのち、下の「counter2.php」を試してみよう。スクリプトの機能としては前
ページのアクセスカウンターと同じものだが、データファイルの管理はMySQL で行っているのが異なる点である。

1Datablocksのトップページから「Admin Database」のリンクをクリックする。ユーザー名とパスワードが要求されるので、FTPのアカウ
ントと同じものを入力する。画面が表示されたら、右側のユーザー名をクリックして、右の画面のように入力して「Go」ボタンを押す。

hosting.datablocks.net/phpMyAdmin/

実際にSQL を扱うとなると専門の知識がかなり必要になるのが、PHP とSQL を組み合わせれば、ショッピングサイトのような複雑なサイトの構築にも対応できる。こうしたサイトの構築や管理を考えている人なら、迷わず今日からPHP を使いはじめよう。個人ページから大規模サイトまで、PHP はあなたのウェブ作成のスキルを一段上のものにしてくれるはずだ。

2データベースの編集画面になるので、左の画面のように各項目を埋めて、「Save」ボタンを押す。これでデータベースの準備は完了する。

<html><head><title> アクセスカウンター・ 2</title></head><body><h2> アクセスカウンター・ 2</h2>
MySQL のサーバー名
あなたは↓↓ユーザー名 ↓パスワード<?php
mysql_connect("localhost","inetmag","xxxxxxxx");←作成したデータベース名
mysql_select_db("countdb");$result = mysql_query("select * from countdb");$array = mysql_fetch_array($result);$count = $array["count "];←データベースの「Field」名$prev = $array["prev "];if ($prev != $REMOTE_ADDR) $count++;
print $counter;$result = mysql_query("update countdb set count=$count, prev='$REMOTE_ADDR'");?>人目です。
</body></html>counter2.php

インターネットマガジン／株式会社インプレスR&D

MySQL（マイ・エス・キュー・エル）： 1994 年にフィンランドのMicheal Widenius 氏によって開発が開始された、フリーのデータベースプログラム。データベースとしては高速に動作
www.mysql.com ©1994-2007 Impress R&Dするのが特徴で、特にウェブサーバーとの連携に優れている。

INTERNET magazine 2001/6

171

自 宅 のパソコンがサーバーになる

Install PHP

ウィンドウズに

1ウェブサーバーはApacheを使う
PHPを動かすには、ウェブサーバーのインストールが必要だ。ウェブサーバ

PHPをーには多くの種類があるが、PHP を使う場合にはもっとも対応が簡単な
Apacheをインストールしよう。

2PHPは手動でインストール

インストールしよう
Apacheのインストール

現 在 のウィンドウズ用 の PHP には、
インストール用のソフトは付属していない。ファイルの移動や設定はすべて手動で行うことになる。

3 ダウンロードしたファイルが右のようなアイコンになっていない場合には、①のページの下のほうにある「MSIPHPでさらにいろいろと実験してみたいという人は、自分のパソコンにウ

Binary Distribution Packages」から、「v1.10」のファェブサーバーとPHPをインストールしてしまうのがおすすめだ。ここでは、ウィンドウズマシ

イルをダウンロードして、先にインストールしておく必要

ンにウェブサーバー（Apache）とPHP をインストールする方法を紹介する。インストールがある。

の手順は少々面倒だが、これでスクリプトの動作確認はかなりラクになるはずだ。

2 ダウンロードしたファイルをダブルクリック
すればインストールが開始される。

1Apache のダウンロード用のページ

から、「apache-5Apacheを動かすには、スタートメニューか

1.3.19-win32-no src-r2.msi」をダウンロードする（「1.3.19」

ら「プログラム」→「Apache httpd Server」の部分はバージョン番号なので、変わる可能性がある）。

→ 「 Start Apache in Console」 を 選 ぶ 。

httpd.apache.org/dist/httpd/binaries/win32/

Apache がきちんと動いていれば、「Apache/1.3.19 (Win32)〜」と表示されたウィンドウが開く。Apache を終了させる場合には、このウィンドウを閉じればいい。

4インストールはウィザード形式なので、ほとんどは「Next」ボタンを押していけば問題ない。ただし、ライセンスの内容を示す画面は、内容に同意のうえ「I accept 〜」をクリックしないと先に進めない。

6Apache が動いている状態で、ウェブブラ
ウザーのアドレス欄に「http://localhost/」と入力する。右のような画面が表示されていれ
ば、インストールはすべて完了だ。

172 INTERNET magazine 2001/6

インターネットマガジン／株式会社インプレスR&D

Apache（アパッチ）：世界中のボランティアからなる「Apache Software Foundation」を行っている、現在もっとも広く利用されているウェブサーバー用プログラムの名称。

www.apache.org©1994-2007 Impress R&D

PHP: Hypertext Preprocessor

PHPのインストール
ウィンドウズ版のPHP にはインストーラーが付属していないので、解凍したファイルは自分でフォルダーを作成してそこに移動させる必要がある。あとは、Apache の設定
ファイルをPHP が利用できるように変更すれば準備は完了だ。

2 ダウンロード
したZIP ファイルを解凍する。

1PHPのダウンロード用ページ

で、「Win32 Binaries」と書かれているところにあるのが、ウィンドウズ用のPHPだ。2 つのファイルがあるが、Apache と組み合わせて使う
場合には上のファイルをダウンロードする

www.php.net/downloads.php

3 解凍したファイルのうち、「php4ts.dll」というファイ
ルを「C:¥Windows¥System」フォルダーに移動する。
4「C:¥Program Files¥Apache Group¥Apache¥conf」

残りのファイルは、Cドライブに「PHP」というフォルダ

フォルダーにある「httpd.conf」をテキストエディターでーを作り、そこにすべて移動する。

開き、以下の2 行を最終行に追加する。なお、この作業を行う場合には、Apache は終了させておく。

LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php
PHP を使うには、この 2 行を httpd.conf の最後に追加する。

C:¥Program Files¥Apache Group¥Apache¥conf¥httpd.conf

次号より
PHP入門の連載開始！
今回の記事で PHP に興味を持った人のために、来月号からは「PHP入門」を連載で開始します。PHPの基礎知識からデータベースと連携した高度なテクニック
まで、毎回実際のスクリプトを例題にして、PHPのノウハウを解説していきます。

5 これで準備は完了。あとはHTML ファイ

これまで、CGIは難しいからとあきらめて

ルやPHP ファイルを「C:¥Program Files¥

いた人でも、PHP ならきっと大丈夫。こApache Group¥Apache¥htdocs」に置けれからのウェブ作成には欠かせない最新

ば、ブラウザーから「http://localhost/ファ
イル名」でアクセスできる。これまで作ってスクリプト、PHP の新連載をどうぞお楽

きたPHP ファイルを置いて、実際に動くかしみに。

どうかを確認しよう。

インターネットマガジン／株式会社インプレスR&D

インストーラー：コンピュータにソフトウェアをインストールする目的で作られたプログラムのこと。ソフトウェアの実行に必要なファイルの作成や、各種の設定などを行う。

©1994-2007 Impress R&D

INTERNET magazine 2001/6

173

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバー
アーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ
番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.