• 締切済み
  • 困ってます

全てのhtml部分をphpで出力

はじめまして、php初心者です。 全てのHTML部分をprint文で出力してコードを記述しています。 <?php print("<HTML><BODY>~") print("</BODY></HTML>") ?> ↑こんな感じです。 ですが、よくみる参考書などでは下のように php部分とhtml部分を分けて記述しています。 <?php phpコード ?> <HTML><BODY>~ </BODY></HTML> ↑このように記述することに特に意味はあるのでしょうか? 見やすいだけですか? 個人的には全てphpで出力して記述するほうが書きやすいのですが print文だと処理速度が結構遅くなるとか、何かあるのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数609
  • ありがとう数0

みんなの回答

  • 回答No.4
  • yambejp
  • ベストアンサー率51% (3827/7415)

>↑このように記述することに特に意味はあるのでしょうか? >見やすいだけですか? 書きやすいし、バグがある場合発見しやすいなどあると思います。 とくにHTML部分をきりわければ、デザイナーとプログラマが 別処理が可能なので、効率的な開発が可能です。 それと実際には変数を参照したりすることを考えるとヒアドキュメント を使うのが効率的だと思います。 <?PHP phpコード; print <<<eof <HTML><BODY>~ </BODY></HTML> eof; ?> もしくは <?PHP phpコード; $str=<<<eof <HTML><BODY>~ </BODY></HTML> eof; print $str; ?> もうすこし発展的に考えれば、htmlファイルを完全に別ファイルにして php側からインクルードして使えば、さらに切り分けができて 効果的でしょう

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • php 出力ファーム 【議題】

    ※php 出力ファームがなかなか作動しません。【エラーだと思います】 出力ファームのタグを記述しときます。 <html> <head><title>output.php</title></head> <body> <?php $name = $_POST['text、password']; print ("ログインが成功しました。防犯行為のため、ユーザーid、パスワードを再度確認ください<br />"); print ("ユーザーID:$text<br />");  print ("パスワード:$password<br />"); ?> </body> </html> ブラウザで確認したところ、出力ファームがなかなか作動しない理由 (1)タグが間違えている (2)環境があっていない (3)サーバーにアップロードしていないため、ほとんどが作動しない ↑にて、僕が出力ファームにて動作しない理由を書いたのですがどうすればよいのでしょうか。? タグが間違えていると自分では【推測】しています。 もちろん、自分が間違えている可能性が高いため、質問をしました 【理解できない場合は、スルー・・・(ーー;)】

  • 「$tag = <<< HTML ~ HTML;」の【~】内でphpを使うには?

    はじめまして、よろしくお願いいたします。 以下のようなphpファイルを作りました、[123]と出力したいのですがうまくいきません・・ 「$tag = <<< HTML ~ HTML;」の【~】内でphpを使うにはどのようにすればよろしいのでしょうか? 教えていただけると幸いです。 __________________________ 【phpファイル】 <? $tag = <<<HTML <html> <body> for($a = 1; $a < 4; $a++) { print($a); } </body> </html> HTML; echo $tag; ?> ___________________________ 【出力結果】 for( = 1; < 4; ++) { print(); } ___________________________ 【希望する出力】 123

    • 締切済み
    • PHP
  • PHPの「こんにちは」の部分は表示できません

    環境はxp、apache2、php5です。 ただ今PHPの勉強をしています。 ローカル上で以下のようなsampleを作りました。 タイトルは表示できるのですが PHPの「こんにちは」の部分は表示できません。 これはPHPがうまくインストールされていない ということでしょうか? --------------------- <html> <head> <title>Sample</title> </head> <body> <?php print "こんにちは"; ?> </body> </html>

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

<?php print("<HTML><BODY>~") print("</BODY></HTML>") ?> 単純にきたないコードです・・・ smartyを使うのがいいのではないでしょうか?

共感・感謝の気持ちを伝えよう!

  • 回答No.2

<?php $body .= "<html><body>~      </body></html>"; print $body; ?> これでどうですか。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

後者の方が、ドリームウェーバー等のWebオーサリングソフトでデザインを整える事が出来ます。前者はそれが無理です。 一般的に言って、デザインとプログラムを分離したほうが読みやすいコードになります。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • phpの変数について

    fedora3,apache2.0,php4.3.11で構成しています。 参考書やサイトを見ながら学習中なのですが、初歩でつまづいています。 <html><body> <?php print $YourName; ?>さん、こんにちは。 </body></html> というa.phpと名づけたファイルにIEでアクセスしているのですが、このときに「サーバ名/a.php?YourName="kokoro"」と打てば、$YourNameという変数に"kokoro"という文字が代入されるとあるのですが、代入されません。参考書のPHPは4.0です。他の参考にしているサイトのPHPのバージョンは分かりません。

    • ベストアンサー
    • PHP
  • PHPで動的にHTMLを出力したときの現象

    サーバは自分で立てたcentOS5.4(i386版)を使用しており、そこでホームページの作成をしております。 ホームページは、PHP5+XHTML+CSS+JavaScriptを使用しており、それぞれ別ファイルで作成してあります。 アクセス先はPHPで、そのPHP内にテンプレートを表示する処理を記述してあるのですが、PHPで動的に表示した状態のソースを見ると、生のHTMLの内容と違った状態で表示されてしまいます。 生のHTMLと動的に出力したHTMLのソースは下記の通りです。 生のHTML ================= <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> <head> ・ ・ ・ 動的のHTML ================= ?????????<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> ・ ・ ・ 動的に出力した状態ですと、ソースの最初に"?????????"という文字が表示されてしまいます。 PHPやHTMLなど、全てのファイルは 文字コード:UTF-8 で、HTMLとCSSは 改行コード:CRLF で、その他のPHPやJavaScriptは 改行コード:LF で作成しております。 php内では、 まずテンプレートを"openFile"で開き、 文字列置換($bodyはテンプレートファイル) $body = str_replace("\\", "\\\\", $body); $body = str_replace("\"", "\\\"", $body); eval("\$body = \"$body\";"); をして、最後に mb_http_output("UTF-8"); header("Content-type: text/html;charset=UTF-8"); print($body); としてあります。 文字コードの関係で文字化けを起こしているため、最初に"?????????"とソースに表示されてしまっているのかと思うのですが、どこが原因なのか分かりません。 原因がお分かりになる方、同じ現象になったことのある方いらっしゃいましたら、ご教授のほどお願い致します。

    • ベストアンサー
    • HTML
  • PHPにおいて<? PHP ?>の外の出力内容

    PHPにおいて PHPタグ つまり <?php ?> にかこまれた外の箇所ですが<?php ?> の外は、php言語構造のechoやprintといったもので出力されたものと 同等の意味をもつとどこかで読んだ気がします。 どなたか、上記のような内容に準する記述のあるサイトをご存知ありませんか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpについて質問です。

    php初心者です。 以下のようなコードを書きました。テストの点数を配列に用意し最大値を表示したいのですがうまくいきません。 どなたかご教授お願いします。 <html> <body> <?php $score = array(20, 21, 59, 100, 78); $max = 0; ?> <table border = "2"> <tr bgcolor = aqua> <th>番号</th> <th>点数</th> </tr> <?php for($i=0; $i<count($score); $i++){ if($max < $socre[$i]) $max = $score[$i]; print"<tr>"; print"<td>{$i}</td><td>{$score[$i]}</td>\n"; print"</tr>\n"; } print"</table>\n"; print"</br>\n"; ?> <?php print"最高点は{$max}です。\n"; ?> </body> </html> foreachをつかえばうまくいきました。 for文ではいけないのでしょうか。 最大値が0と表示されるのでどうやらif文の条件分岐がうまくいってないようなのですが..... 初心者なので勘違いをしているところがあると思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • do~while文がよくわかりません

    今参考書で勉強しているのですが、do~while文がよくわかりません 。コードは下記のようになります。どうして前の処理結果が足されていくのか理解できません。こんな馬鹿にどうかわかりやすくご教授していただけないでしょうか!? <?php $s = $i = 0; do{ ++$i; $s += $i; }while($i < 10); print "1 から $i までの和は $s"; ?>

    • ベストアンサー
    • PHP
  • PHPとhtmlの関係

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

    • 締切済み
    • PHP
  • [HTML+JavaScript+php]htmlにphpの結果を表示したい。

    こんばんは。 いま、簡単な動的なウェブページを作っています。 htmlファイルにJavaScriptで動的にphpの結果を表示できるような処理をしたいのですが・・・どのようにすれば可能か、、、参考文献が見つかりません。 ・・・色々調べたのですが。 どういうことがしたいかといいますと、htmlはphpなどにせず、htmlのままにしておきたいと思っています。 そのhtmlの<BOBY></BODY>内の一部にJavaScriptを使って、 document.write("最終更新:",document.lastModified); 時間を表示したりしています。 このような方法で、<BODY></BODY>内にphpの実行結果を表示させたいと考えています。 その場合、html側にはどのような記述を、またphpですべきことはあるのか、、、を調べています。 分かられる方・・・お教え下さい。 また、参考になりそうなページの紹介でも結構です。 何卒、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 外部のCSVファイルをPHPで読み込み、出力させたい

    下記の質問を参考に外部のCSVファイルをPHPで読み込み、出力させるphpを書きました。 http://oshiete1.goo.ne.jp/qa1615206.html data.csvは "データ01" "データ02" "データ03" ・・・ といったように100行書いてあります。 <1ページ目に記述したphp> <?php $fp = fopen("data.csv", "r"); $repeat = 10; $count = 1; while ($data = fgetcsv($fp, 10000)) { if ($count > $repeat) { break; } print <<<EOD $data[0] EOD; $count++ ; } fclose ($fp) ?> 2ページ目には11行目からのデータを出力したいと思い、 $data[0]の部分を$data[11]に変えたり、 $repeat = 20; $count = 11;にしたりしたのですが、 両方ともうまくいきませんでした。 2ページ目にcsvの11行目からのデータを出力するにはどうすればいいのでしょうか? 私がしたいことは、1ページ目にcsvの1~10行目を、2ページ目にcsvの11~20行目を出力したいとおもっております。 上記のphp以外の記述でも構いませんので、どなたかお分かりになる方がいらっしゃいましたら是非教えて下さい。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • HTML出力時のprint処理速度について

    はじめて質問させていただきます。 HTML出力を行う際の処理速度に関してなのですが print文を使用して、一行ずつ出力を行う場合と ヒアドキュメントを使用して出力を行う場合とでは やはり、ヒアドキュメントを使用して出力を行った方が 処理速度は早くなるのでしょうか? まだPerlを始めて日が浅いので もしかすると、ものすごく基本的な 質問となってしまっているかもしれませんが よろしく、お願いいたします。

    • ベストアンサー
    • Perl
  • PHPとDW8の関係と設定について

    自分の持っているPHPの参考書の通りにApache2.0.59とPHP5.1.6をダウンロードして、PHPの勉強を始めようと思いました 。PHPの簡単なファイルを作成しました。開いてみると、DW8 が開きました。しかもprint 部分に関しては緑色の枠で囲まれたPHPという文字になっています。その部分はちゃんとPHPのプログラムができているのかを調べるためにブラウザで表示しようとすると、「サーバーサイドコードを含むページをプレビュ-するには、テストサーバーが必要です。テストサーバーを今すぐ指定しますか?」という文字が出てきます。しかし、DW8の参考書でこのあたりは出てこないので、どうしたら良いのかわかりません。設定の仕方とかわかる人がいましたら教えてください。

    • ベストアンサー
    • PHP