マンガでよめる痔のこと・薬のこと

PHPの学習を始めました。
Webページを作る場合に,PHPの中にhtmlを記述するときと、htmlの中にPHPを記述するときがあるようですが、PHPの中にhtml文をPRINT命令で記述するケースではサーバー主導で命令が実行されるので記述した文のとおりの実行順で実行されることがイメージできますが、逆にhtmlの中でPHPを記述したときのクライアントとサーバーの命令のやり取りの順番がイメージできません。
どなたか,私のような初心者にわかりやすく教えていただけないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

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のファイルとなってから送信されます。

この回答への補足

どうも私自身がCGIというものの動作を理解することから始めたほうがよさそうです。

補足日時:2009/11/17 09:00
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2009/11/17 08:57

クライアント(ブラウザ)が受け取るのは、最後に出来上がったHTML文書です。


中に<?php hogehoge ?> なんて書いてあることはまったく理解していません。

この回答への補足

回答いただいた内容より
<INPUT type="hidden" name="doc" value="<?php hogegoge; ?>">
をサーバーがクライアントへ送るときhogehogeを実行した後に
<INPUT type="hidden" name="doc" value="<?php hogegoge; ?>">
をクライアントへ送信する
と理解しました。
あってますでしょうか? 

補足日時:2009/11/16 08:12
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2009/11/17 08:57

<クライアントとサーバーの命令のやり取りの順番がイメージできません。


とありますが、どっちのやり方でもクライアントとサーバーはやりとりなんかしません。
あくまでも、GETやPOSTの要求を受けたサーバーが
ファイルを読み込み、ファイルの先頭から解釈します。
特別な処理、(例えば出力のバッファリング等)をしない限り、
順次に出力されるだけです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2009/11/17 08:56

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の実行結果を待たずして実行されるのでしょうか?

補足日時:2009/11/13 16:21
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2009/11/17 08:55

>htmlの中でPHPを記述したとき



ごめんなさい。質問の正確な意味がわかりません。
htmlの中にいくらPHPのスクリプトをかいても、ただの文字として
認識されるだけですが、これで回答になっているでしょうか?

この回答への補足

すいません言葉が足りませんでした

(1)html中にPHPは以下のような記述のケース

<FORM method="POST" action="<?=$script ?>">

(2)PHPの中にhtmlは
 <?php
print("</TEXTAREA>");
 ?>

です。

補足日時:2009/11/13 15:55
    • good
    • 0
この回答へのお礼

回答ありがとうございます

お礼日時:2009/11/17 08:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q逆向き/(スラッシュ)の入力方法

タイトルの通り、逆向き/(スラッシュ)の入力方法がわかりません。

記号⇒変換 で出てくるのは\、大文字ですよね、
これの小文字バージョンの出し方がわからないのです。
cgiのプログラミングにチャレンジ中でブチ当たって
しまい、途方にくれています。
ちなみに使ってるキーボードは106です。

Aベストアンサー

殆どの場合、バックスラッシュを使うのであれば、¥記号で代用できます
これは、フォントの問題であって、内部的な数値は同じ物だからです

もし、cgiプログラミングの本などでバックスラッシュを使うように指示があった
場合は、スラッシュではなく¥記号にするのが間違いがないはずです

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む

Q全体の何パーセントかが分からないです。

質問を見てくださってありがとうございます。

いくらは全体の何パーセントかという計算が出来ず、困っています。

たとえば月収27万として、生活費を3万とすると3万は全体の何パーセント分なのかという出し方が分かりません。

こんな質問でお恥ずかしいのですが、良かったら教えてください。。。
どうぞよろしくお願いします!

Aベストアンサー

何パーセントかを求めたい数を、100%にする数(全体)で割ると割合が出ます。
ご質問の内容だと、3万円÷27万円を計算することになります。
 3万÷27万=0.111…

計算で出てきた割合に100をかけると何%かが求められます。
 0.111×100=11.1
だいたい11%ぐらいです。

Q画像イメージの上下左右、欲しいところに好きな間隔を入れられますか?

こんにちは。タイトルの通りサイト作成で、
画像の上下左右、好きな方向に間隔を入れられるかその方法をお教えください。

参考までに、DreamWeaver(ドリームウィーバー)2004MXです。

画像とテキストの兼ね合いで、画像の右側や左側に、
ところどころで間隔が欲しいと思っています。

間隔をいじれるところといえば縦間隔、横間隔になりますが、
縦間隔なら「上」と「下」、横間隔なら「右」と「左」、
これらが一度に動いてしまうのです。
片方には確かに欲しい間隔が得られるのですが、
ほう片方に要らない間隔ができてしまい困っています。

例えば右だけに間隔が欲しい。
左だけに間隔が欲しい。

こういう場合って、何かやり方があるのでしょうか。

もともと余白込みの画像を用意するという手も講じましたが、
その場合はその場合で、その画像が他のレイアウトに流用しづらい
という弱点を生んでしまい、レイアウトごとに画像を用意しなければならないので
対症療法としてはうまくいきませんでした。

また、画像ごとにセルを用意して任意の余白を作り出す手もありましたが、
セルがあまりにも絡まりあってしまい、
かなりぐちゃぐちゃなものになるためうまくいきませんでした。

やはりもうちょっと詳しい方にお訊きしようと思いまして
質問を立てさせていただきました。
素人質問で大変申し訳ありません。
どうぞ宜しくお願いいたします。

こんにちは。タイトルの通りサイト作成で、
画像の上下左右、好きな方向に間隔を入れられるかその方法をお教えください。

参考までに、DreamWeaver(ドリームウィーバー)2004MXです。

画像とテキストの兼ね合いで、画像の右側や左側に、
ところどころで間隔が欲しいと思っています。

間隔をいじれるところといえば縦間隔、横間隔になりますが、
縦間隔なら「上」と「下」、横間隔なら「右」と「左」、
これらが一度に動いてしまうのです。
片方には確かに欲しい間隔が得られるのですが、
ほう片方...続きを読む

Aベストアンサー

HTMLの初歩です。具体的には、
-------------------------------------------
<img src="○○.gif" width="100" height="100" alt="*"
style="margin: 10px 20px 0 30px;">

上10px 右20px 下0 左30px の四方の隙間が開く。
数値は例なので適当に変更を。
-------------------------------------------

<img src="○○.gif" width="100" height="100" alt="*"
style="margin: 5px 20px;">
上下5px 右右20px の2方の隙間が開く。

Qボタンを横に並べて表示させる方法

<input type="button"> ←このボタンを、並べて表示させるにはどうしたら良いでしょうか? (tableは使わない方法で) よろしくお願いいたします

Aベストアンサー

ソースをください。

inputはインライン要素なので改行は入らないです。


人気Q&Aランキング

おすすめ情報