PHPプログラムの拡張子

広告

HTMLページの拡張子は「.html」や「.html」が使用されます。HTMLページ内にPHPのプログラムが記述されている場合であってもHTMLページであることに違いがないのですが、PHPプログラムが含まれているHTMLページであることをWebサーバ側に認識させるためにファイルの拡張子を変更します。

どのような拡張子を使うのかが決まっているわけではありません。ApacheなどのWebサーバの設定で、PHPプログラムとして処理を行うファイルの拡張子を指定しておき、そしてPHPプログラムが含まれるHTMLページに指定しておいた拡張子を付けることになります。(Apacheにおける設定方法については「PHP利用のための設定」を参照して下さい)。

一般的にはPHPプログラムが含まれるHTMLページの拡張子は「.php」を使います。この場合はWebサーバ側でPHPプログラムが記述された拡張子として「.php」を設定しておきます。

では簡単なプログラムで試して見ます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>サンプル</title>
</head>
<body>

<p>こんにちは。</p>

<p>
<?php
echo "お元気ですか?";
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

p2-1

Webサーバはクライアントから要求されたファイルの拡張子に「.php」が付いていることからページ内にPHPプログラムが含まれていることを認識します。そしてPHPプログラムを処理した後の結果をクライアントへ返します。

実際にブラウザに表示されたページのソースを確認すると次のようになっています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>サンプル</title>
</head>
<body>

<p>こんにちは。</p>

<p>
お元気ですか?</p>

</body>
</html>

元のHTMLページに含まれていたPHPプログラム部分はWebサーバ側によって処理され、クライアント側に出力される時点ではPHPのプログラムがどのように記述されていたかは分からなくなっています。

PHPプログラムが含まれるHTMLページの拡張子を「.html」にする

ファイルの中身はまったく同じままで拡張子を「.html」とした場合も試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>サンプル</title>
</head>
<body>

<p>こんにちは。</p>

<p>
<?php
echo "お元気ですか?";
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

p2-2

今回は拡張子が「.html」となっているためPHPプログラムが含まれているページであるとWebサーバが認識していません。その為、PHPプログラム部分の処理は行われずそのままクライアントに送信されています。

実際にブラウザに表示されたWebページのソースを確認すると次のようになっています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>サンプル</title>
</head>
<body>

<p>こんにちは。</p>

<p>
<?php
echo "お元気ですか?";
?>
</p>

</body>
</html>

HTMLページ内に含まれているPHPのプログラムがサーバ側で処理されずそのままクライアントへ送信されてしまっていることが確認できます。

( Written by Tatsuo Ikura )