PHPプログラムの拡張子

HTML ページをファイルに保存する場合、拡張子として .html や .htm などが使用されます。 HTML ページの中に PHP を使って記述したプログラムが含まれている場合、 PHP のプログラムが含まれていることが分かるようにファイルの拡張子を .php に変更します。ここでは PHP のプログラムが含まれるファイルの拡張子について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 27 日更新)

PHPプログラムの拡張子

PHP のプログラムが含まれるファイルの拡張子について、明確にこうすべきと決まっているわけではなありません。一般的には拡張子として .php を使用します。実際にどの拡張子のファイルが PHP のプログラムが含まれるファイルとして処理するのかについては、 Apache などの Web サーバの設定で定義します。(Apacheにおける設定方法については「PHPおよびCGI利用のための設定」を参照して下さい)。

では簡単なプログラムで試してみます。テキストエディタに次の内容を記述し、 sample.php として Web サーバのドキュメントルートに設置しました。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

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

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

</body>
</html>

ブラウザから Web サーバへアクセスし、先ほどのファイルへアクセスしてみます。すると次のように表示されました。

PHPプログラムの拡張子(1)

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

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

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

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

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

</body>
</html>

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

PHPプログラムが含まれるファイルの拡張子を「.html」にした場合

ファイルの中身はまったく同じままで拡張子を .html としたらどうなるのかを試してみます。テキストエディタで次の内容を記述し、 sample.html として Web サーバのドキュメントルートに設置しました。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

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

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

</body>
</html>

ブラウザから Web サーバへアクセスし、先ほどのファイルへアクセスしてみます。すると次のように表示されました。

PHPプログラムが含まれるファイルの拡張子を「.html」にする(1)

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

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

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

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

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

</body>
</html>

HTML ページ内に含まれている PHP のプログラムがサーバ側で処理されずそのままクライアントへ送信されてしまっていることが確認できます。(なお PHP の開始タグから終了タグの間の部分は、 HTML ページとして表示する場合には何も表示されません)。

-- --

PHP のプログラムが含まれるファイルの拡張子について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。