- 締切済み
PHPとhtmlの関係
PHPの学習を始めました。 Webページを作る場合に,PHPの中にhtmlを記述するときと、htmlの中にPHPを記述するときがあるようですが、PHPの中にhtml文をPRINT命令で記述するケースではサーバー主導で命令が実行されるので記述した文のとおりの実行順で実行されることがイメージできますが、逆にhtmlの中でPHPを記述したときのクライアントとサーバーの命令のやり取りの順番がイメージできません。 どなたか,私のような初心者にわかりやすく教えていただけないでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- atsushifx
- ベストアンサー率50% (9/18)
Webアプリで知っておくべきことはサーバサイドとクライアントサイドです。 Webでは、WebサーバがWebページを送信してクライアントPCのブラウザがページを表示します。 Web上のプログラミング言語では、プログラムがWebサーバ側がクライアントPC側が意識してください。 PHPはサーバサイドのプログラミング言語なので、Webサーバ側で動作します。 通常のホームページ(静的ページ)では、 Webサーバ上のHTMLファイル → クライアントPCという流れで表示されます。 PHPなどを使ったWebアプリ(動的ページ)では、 Webサーバ上のWebプログラムを実行 → 表示用に作成されたHTMLファイル → クライアントPCという流れで表示されます。 PHPはサーバサイドなので、ファイル中のPHPプログラムもHTMLも同時に処理されます。 PHPではPHP外のHTMLは変更しないので、すべてHTMLのファイルとなってから送信されます。
- kt_yuka
- ベストアンサー率53% (8/15)
クライアント(ブラウザ)が受け取るのは、最後に出来上がったHTML文書です。 中に<?php hogehoge ?> なんて書いてあることはまったく理解していません。
お礼
回答ありがとうございます
補足
回答いただいた内容より <INPUT type="hidden" name="doc" value="<?php hogegoge; ?>"> をサーバーがクライアントへ送るときhogehogeを実行した後に <INPUT type="hidden" name="doc" value="<?php hogegoge; ?>"> をクライアントへ送信する と理解しました。 あってますでしょうか?
- yyr446
- ベストアンサー率65% (870/1330)
<クライアントとサーバーの命令のやり取りの順番がイメージできません。> とありますが、どっちのやり方でもクライアントとサーバーはやりとりなんかしません。 あくまでも、GETやPOSTの要求を受けたサーバーが ファイルを読み込み、ファイルの先頭から解釈します。 特別な処理、(例えば出力のバッファリング等)をしない限り、 順次に出力されるだけです。
お礼
回答ありがとうございます
- 7L4QOI
- ベストアンサー率5% (1/17)
htmlの中にphpを埋め込むのが一般的な使い方と思います。 "<?php" と"?>"で囲まれた部分はPHPのプログラムとサーバーで 解釈されて、サーバーで実行されます。 そうでない部分は通常の htmlと解釈されてそのまま、サーバーから出力されます。 この辺は実際に動かした方が理解がはやいと思います。 windowsなら XAMMPで簡単にインストールできます 参考 http://www.thinkit.co.jp/free/article/0701/12/1/ http://www.adminweb.jp/xampp/
お礼
回答ありがとうございます
補足
もう少し教えてください。 たとえば以下のようなhtml文のとき <INPUT type="hidden" name="doc" value="<?php 命令文1 ; ?>"> サーバーからのhtml出力は phpの命令文1の実行の完了を待ってから実行されるのしょうか? それともhtml出力は命令文1の実行結果を待たずして実行されるのでしょうか?
- yambejp
- ベストアンサー率51% (3827/7415)
>htmlの中でPHPを記述したとき ごめんなさい。質問の正確な意味がわかりません。 htmlの中にいくらPHPのスクリプトをかいても、ただの文字として 認識されるだけですが、これで回答になっているでしょうか?
お礼
回答ありがとうございます
補足
すいません言葉が足りませんでした (1)html中にPHPは以下のような記述のケース <FORM method="POST" action="<?=$script ?>"> (2)PHPの中にhtmlは <?php print("</TEXTAREA>"); ?> です。
お礼
回答ありがとうございます
補足
どうも私自身がCGIというものの動作を理解することから始めたほうがよさそうです。