• ベストアンサー

htmlにphpを埋め込むと書いてあるんですが、

htmlにphpを埋め込むと書いてあるんですが、 これはエディターなどでhtmlのメモ帳?の中にphpのコードを書き込んでも 自動的にhtmlに変換されるということなんですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.8

変なタイミングで回答してしまい、混乱をさせてしまったようであれば申し訳ございません。(回答No.6の件) ご質問本文から引用して回答してみます。 【1】「htmlにphpを埋め込む」とは ここでいう、htmlは、HTML言語で書かれたソースコードの中に、PHP言語でかかれたソースコードを埋め込む、というのが丁寧な書き方になります。 PHP言語とは、「<?php」からはじまって「?>」で終わるところまで、または「?>」を閉じなければファイルの終端まで、がPHP言語のソースコードです。 【2】「htmlのメモ帳?」について こちらの「htmlのメモ帳?」という表現は曖昧過ぎるので、以下のように表現されるものと解釈します。 "拡張子が.htmlとなっているソースコードが記述されたファイル" 【3】「htmlのメモ帳?の中にphpのコードを書き込んでも自動的にhtmlに変換される」のか "自動的に変換する"の主語によります。主語が"phpコマンドが"ということであれば"自動的に変換する"というのは概ね間違っていません。 phpコマンドについては、私の「回答No.6」や、AsarKingChangさんの「回答No.4」でお伝えしたようなものになります。 主語が"Webサーバが"の場合は、通常であれば(特別な設定をしていなければ)、 拡張子が「.html」となっているファイルは、HTML言語として認識してしまいますので、"Webサーバは自動的に変換しません"。 そのため、「htmlにphpを埋め込む」とは言っていますが、拡張子が「.php」となっているファイルに記述する必要があります。 そうすると"Webサーバは自動的に変換をします"。 【4】余談 - 拡張子「.html」や拡張子「.php」について 拡張子はあくまで、ファイルの中に何が書いてあるかを推測する(わかりやすくする)為に付けただけのファイル名称です。 VSCodeも、「.php」がついているファイル名だからきれいに色分けしているだけで、拡張子が「.waaaa」がついているファイル名にPHP言語のソースコードを書いてもよいです。 色分けや便利な機能が使えなくなるだけで。(困りますけど) Webサーバも「.php」がついているファイル名だから"自動的に変換"して画面に出力してくれるだけで".waaaaa"という拡張子にした場合、 "変換はされず"にソースコードのまま、画面に出力されるだけです。(困りますけど) そして、他のスクリプト言語の場合、言語の名前と一般的に使われる拡張子も同じ名称ではないものが多いです。 Ruby言語なら「.rb」 Perl言語なら「.pl」 Python言語なら「.py」 といった具合に。 【5】教えていただきたいこと この回答までの間にみんなが回答しているもので、「わかったこと」、「わからないこと」は現状どのようなものがありますか。 今回の質問は素朴な疑問のわりに、様々な前提知識が必要な内容になりますので、具体的に教えていただければ解決につながるのではないかと思います。 よろしくお願いいたします。

okwaveokw
質問者

お礼

ありがとうございます 一端質問を閉じさせていただきます

その他の回答 (7)

  • t_ohta
  • ベストアンサー率38% (5253/13739)
回答No.7

PHPは元々HTML文章の中にプログラムを記述する方式のプログラミング言語です。 PHPのプログラムが記述されたファイルはWebサーバ内で実行されて、PHPで記述された部分が実行結果に書き換わり、Webサーバへ引き渡され、引き渡されたデータをWebサーバがブラウザへ送ります。 そのため、ブラウザがWebサーバから受け取ったデータ(HTML)にはPHPのプログラムは書かれておらず、HTML形式に変換された結果だけが渡されます。 なので、プログラムが実行されるのはWebサーバ上ですので、エディターでプログラムを書いただけでは実行されず、HTMLにも変換されません。 PHPのプログラムがHTMLに書き換わるのはWebサーバでプログラムが実行(ブラウザからリクエスト)された時です。

okwaveokw
質問者

お礼

ありがとうございます

回答No.6

PHPはインタプリタなので、コンパイルを行いません。 なので、PHPはテキストエディタなどで入力した後、PHPコマンドにファイルを渡してやると、インタプリタが内容を実行します。 例)コマンドプロンプトでPHPを実行する >php test.php このようにするとtest.phpの中身をphpのインタプリタが1命令ずつ解釈して実行して行きます。 というのが前提にありますが、ここまではご理解いただいていますか。 そのうえで、上記の例のようにtest.phpに、以下のように記述する test.php------------------------------- こんにちは世界 ------------------------------------------ これを実行していただくと、出力結果として「こんにちは世界」と表示されるかと思います。 それが確認できたら、以下のように変更してみる test.php------------------------------- <?php $name = '太郎'; ?> こんにちは<?php echo $name ?> ------------------------------------------ これを実行すると「こんにちは太郎」と表示されることと思います。 この観測結果から、PHPのインタプリタは渡されたファイル内の「<?php」からはじまり「?>」で終わる部分だけをPHPとして解釈していて、それ以外の部分が書いてある通り表示(標準出力)されることが推測できると思います。 これを確認したうえで添付いただいている画像を見ていただければなんとなく言わんとすることがわかるのではないでしょうか。

okwaveokw
質問者

お礼

全然わかりません ありがとうございます 初心者です

回答No.5

phpの構文がhtmlから一部借用されているだけの話で、 目的としてはシームレスにwebページを記述できることがありますが、 そんな事言っては居られない事態になってます。 でも、phpは特段優秀な言語ですので、 困惑せずに、着実に記述しテストし、動作させるように 邁進して頂きたいと思います。

okwaveokw
質問者

お礼

ありがとうございます

回答No.4

".html"や".php"が HTMLやPHPと無関係であることを画像にして、投稿しておきますね。 画像にあるファイルは、「すべて内容は同じ」です。 しかし拡張子を別にしても結果は一切変化していない。 =つまり変換はしていない!  ただ、その場に展開されただけにすぎません。 なので、ApacheがPHPパーサーを通す条件がPHPファイルだけなら PHPファイルだけがパースされるというだけのことで、 それ自体はいかなる変換もしていないのです。

okwaveokw
質問者

お礼

全然わかりません ありがとうございます

回答No.3

>vscodeでphpのプログラミングをするときに、最初にファイル形式を .php >としてファイルを作ってその中にphpのコードを書かないといけないですよね? >htmlに埋め込めるということは、html形式のファイルの中に >phpを書いてもphpが使えるということなんですか? パーサーのデフォルトが".php"なだけで、 ".html"もPHPを通すようにすれば、".html"でも、 PHPは実行されます。 なお、".html"と”HTML"は違います。 前者は「拡張子」にすぎません。 >原点とは? PHPやPerlはサーバーサイドスクリプトだという意味です。 >>PHPが処理した結果が、その位置に反映されてるんです。 >HTMLとは限りません。 その通り、HTMLとは限りません。 JavaScriptを送ればJavaScriptです。 いかなる変換もしていません。 ただPHPを実行した結果がその位置に反映されているだけの事です。 >>PHPがHTMLを吐き出しただけの事です。 >あの画像には変換、埋め込む と書いてあります その通りです。 埋め込まれただけで、変換はされていません。 echoの中身が変化してはいませんよね? その位置に展開されただけです。 JavaScriptを展開すればJavaScriptになりますし。 画像を展開させればそれは画像になります。 ただし、MIMEが違うので、画像だと認識させるには 適切なContent-Typeを設定する必要があります。 例:HTMLの場合は Content-Type: text/html です。

okwaveokw
質問者

お礼

なお、".html"と”HTML"は違います。 前者は「拡張子」にすぎません。 ではHTMLはなんですか?

noname#263248
noname#263248
回答No.2

htmlはhtmlですので、そもそもphpではありません htmlの中にphpを書いても何も起こりません htmlの内容を含むphpのなかでは、そのように処理されます 何を言われてるかわからないと思います 今はあまり気にせず、もう少し勉強してみるとわかると思います

okwaveokw
質問者

お礼

htmlの中にphpを書いても何も起こりません phpの中にhtmlの場合はどうなりますか?

回答No.1

原点に戻ってますね。質問が! まず、PHPはサーバーサイドスクリプトです。 だから、PHPが処理した結果が、その位置に反映されてるんです。 HTMLとは限りません。 PHPでJavaScriptを吐き出したらそのJSファイルはJSです! PHPでJPEG画像を送り出せばそのファイルはJPEGですから。 HTMLに変換したのではなく、 PHPがHTMLを吐き出しただけの事です。

okwaveokw
質問者

お礼

vscodeでphpのプログラミングをするときに、最初にファイル形式を .php としてファイルを作ってその中にphpのコードを書かないといけないですよね? htmlに埋め込めるということは、html形式のファイルの中に phpを書いてもphpが使えるということなんですか?

okwaveokw
質問者

補足

原点とは? >PHPが処理した結果が、その位置に反映されてるんです。 HTMLとは限りません。 どういう意味でしょうか? >PHPがHTMLを吐き出しただけの事です。 あの画像には変換、埋め込む と書いてあります

関連するQ&A

専門家に質問してみよう