拡張子に拠る表示の違い モヤモヤが解消した・・・

左の赤い枠内のブックマークでは404 errorと表示されてしまうモヤモヤが解決した気がする。

そもそも404 errorの表示は、ドメイン直下に表示したいファイルを直接指定しても表示されないみたいだ。
何故なら公開フォルダを設定しているのに、このリクエストでは公開フォルダが抜けているからだった・・・

そこまでは何とか理解したのだが、「拡張子によってphpコードが実行されなかったり、HTMLコード内でphpの変数が有効にならない」なんてことは、実務に携わっている方々は常識の範疇ではあろうが、自分は独学なものでそこのところが甘かったが、案外いい勉強になった。
どうやってモヤモヤが解消したのか・・・。近くに詳しい人もいないのでChatGPTは最強のパートナーになった。

ChatGPTの回答は下記に示す通りです。

理由

サーバーはファイルの拡張子に基づいて、どのようにファイルを処理するかを決定します。.php 拡張子のファイルはサーバー側で PHP インタープリタによって処理され、PHPコードが実行されますが、.html 拡張子のファイルは通常、静的ファイルとして扱われ、そのままブラウザに送信されます。結果として、PHPコードは実行されず、単なるテキストとして扱われてしまいます。

対策

.html ファイルでも PHP を使いたい場合は、以下の方法があります。

1. ファイルの拡張子を .php に変更する

最も一般的な方法です。ファイルを .html から .php に変更すると、サーバーがそのファイルを PHPとして処理します。

2. .htaccess で設定を変更する

Apacheを使用している場合、.htaccess ファイルを編集して、.html ファイルでもPHPを処理できるように設定することができます。以下のコードを .htaccess に追加します。

これにより、.html ファイルも PHP インタープリタで処理されるようになります。

3. includerequire を使用する

.html ファイルの中に PHP ファイルを includerequire で組み込むことで、部分的に PHP を使用することも可能です。

これにより、PHPのコードを別ファイルに分離して実行できます。

結論

.html ファイルではデフォルトでPHPコードは実行されませんが、設定を変更することで実行可能にすることができます。

具体的には、<?php include 'some_php_file.php'; ?> というコードは、PHPの include 構文を使って外部のPHPファイルを現在のスクリプトに読み込み、実行するためのものです。この場合、some_php_file.php は読み込むファイルの名前を指します。

例:

もし、同じディレクトリ内に some_php_file.php というファイルが存在し、そのファイル内に次のようなコードがあったとします。

このファイルを include すると、現在のスクリプト内で $name 変数が使用でき、"こんにちは、ユーザーさん!" というメッセージが表示されます。

重要な点:

  • include では、指定したファイルが見つからない場合でも、スクリプトは実行され続けますが、require ではファイルが見つからない場合にエラーが発生し、スクリプトが停止します。
  • ファイルのパスは、相対パス(同じディレクトリや親ディレクトリ)や絶対パス(サーバーのルートからのフルパス)を指定することもできます。

もし別のディレクトリにファイルがある場合は、適切なパスを指定する必要があります。

投稿者プロフィール

近江公人
近江公人
asamai-cts Owner
あさまいCTSの代表オヤジです(2024年現在=63歳)
横手市中央町で「ラーメン与市」を2012年まで約15年間を経営。
その後、「横手市雇用創出協議会 実践支援員」を経て、一時会社勤めをするが再度、自営業の世界に戻る。
現在の「あさまいCTS」は2019年1月に起業。業務内容は主に、パソコンの修理、出張スマホ・パソコン教室、ホームページ作成 その他 何でも屋みたいなものです・・・

Follow me!