PHPを含むHTML文書は、通常のHTML文書と同様、
Apacheのhttpd.confで指定した場所に置くことができます。
ファイルのパーミッション等も通常の文書と同様でOKです。
試しに、次のようなファイルを作ります。
/usr/local/apache/htdocs/hello.php など適当な名前で保存します。
拡張子はhttpd.confで指定したもの(上の設定では.php)にしておく必要があります。
<html><body>
<?php
print "<h1>Hello PHP World!</h1>";
?>
</body></html>
|
ApacheでHTTP経由で実際にアクセスして確認します。
上の例なら例えば「http://localhost:8088/hello.php」というURLになります。
今度は、PHPの組み込み(built-in)関数を使って、
現在の時刻を表示するスクリプトを作ってみます。
<?php header("Content-type: text/html;charset=euc-jp"); ?>
<html><body>
<?php
# コメントです。
print "<h1>Hello PHP World!</h1>";
$d = <font color="red">date("Y/m/d H:i:s")</font>;
print "只今、$d です。";
/* コメントです。*/
?>
</body></html>
|
このように、PHPのスクリプトはHTML文書の中に埋め込んで書きます。
ファイルの拡張子は「.html」ではなく「.php」にしておきますが、
この拡張子はこのHTML文書を送り出すWebサーバの設定によって変わるので、
サーバによって確認が必要です。
文法について基本的なことは書籍等も多いので省略します。
上のようにdateという関数で現在の日時をフォーマットして表示できます。
今度のスクリプトも簡単さではひけをとりませんよ (自慢になってないって)
<?php header("Content-type: text/html;charset=euc-jp"); ?>
<html><body>
<h1>Hello PHP World!</h1>
<?php
$d = date("H");
if($d >= 6 && $d < 10){
?>
おはようございます。<br>
<?php
} elseif($d >= 10 && $d < 18){
?>
こんにちは。<br>
<?php
} elseif($d >= 18 && $d < 24){
?>
こんばんは。<br>
<?php
} else {
?>
眠くないですか?<br>
<?php
}
?>
</body></html>
|
覚えてしまえばなんてこともないのですが、
PerlのelsifはPHPではelseifです。(else ifも一応OK)
文法がPerlとよく似ているので、ついPerlのようにelsifを使ってしまいがちなので、注意が必要です。
またJavaScriptはelseifもelsifも駄目です。JavaやCと同様else ifと書かないといけません。
このあたり、言語の設計者の考えが反映されて興味深いのですが、
いろいろな言語を使う開発者からすると、覚えて使い分けるのがタイヘンですね。
このような例はPHPの他の場面でもご紹介しようと思います。
PHPの基本的なテクニックとして、よく使うコードを別のスクリプトファイルにしておいて、
各HTML文書からは「include」命令でそれを取り込む(インクルード) 方法がとられます。
まずは、インクルードされる側の2つのファイルです。
ひとつめは「included-header.inc」と名づけました。
ここでの拡張子は何でもよいです。
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=euc-jp"></meta>
<title><?= $title ?></title>
</head>
<body bgcolor="white">
|
このように、インクルードされるHTML文書にもPHPを書き込むことができます。
その際変数のスコープも引き継ぐので、
上のようにタイトルに変数を参照することもできます。
<?= $val ?> は <?php print $val; ?> の簡略記法です。
ふたつめは「included-footer.inc」と名づけました。
こちらはわずかこれだけの簡単なファイルです。
そして、これらをインクルードするHTML文書は次のようになります。
<?php $title = "サンプル";
include "included-headers.inc" ?>
インクルードしています。
<?php include "included-footers.inc" ?>
|
このように、HTML文書のタイトル等のヘッダ部と末尾のフッタ部を別ファイルにしておくと、
複数のHTML文書の体裁をまとめて変えたい、
というような場合にも、ヘッダ部やフッタ部のファイルの内容を書きかえるだけで済みます。
なおinclude文は割と昔からそなわっていた機能ですが、
現在は同様の仕事をよりつよまった機能で行う
require_onceなどの文もあり、実際の開発ではそちらに統一されていることも多いかもしれません。
PHPに限らず、サーバーサイドスクリプトのテストやデバッグは一般に面倒です。
これはトラブルの原因がスクリプトのバグによるのか、
サーバ環境の不備によるのかの見極めに時間がかかるからです。
そこで少しでも問題の切り分けをしやすくするため、
PHPのサーバ環境に関する情報を一度に見ることができる機能を使ってみます。
<html><head>
<meta http-equiv="Content-type" content="text/html;charset=euc-jp"></meta>
<title>ユーザー環境を表示するサンプル</title></head>
<body bgcolor="white">
<?php
print "<h1>ようこそ</h1>";
print "あなたのIPアドレスは " . $_SERVER['$REMOTE_ADDR'] . " です。<br>";
print "あなたがお使いのWebブラウザは " . $_SERVER['HTTP_USER_AGENT'] . "です。<br>";
?>
<br>
◎phpinfo()の出力:<br>
<?php phpinfo(); ?>
</body></html>
|
連想配列_SERVERに格納された、
REMOTE_ADDRやHTTP_USER_AGENTなどの情報を利用します。
また組み込み関数 phpinfo
を使うと、サーバの情報や現在定義されている設定情報などを一覧にして見ることができます。
(first uploaded 2001/12/24 last updated 2008/01/14, MISUMI URANO)
|