• ベストアンサー

連続するecho関数の手間を省く方法

現在、PHPとCGIを平行して勉強しているのですが、 CGIは printf EOM<< ~ EOM<< のような形で関数1つだけで~の内容を出力できるのに、同様にPHPでやるとエラーになります。 こんな感じです。。。 <?php print EOM<< Content-Type:text/html\n\n; <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>ハロー!PHP!!</TITLE> </HEAD> <BODY> ハロー!PHP!! </BODY> </HTML> EOM<< ?>

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

  • ベストアンサー
  • m-kur
  • ベストアンサー率50% (22/44)
回答No.1

Content-Type:text/html\n\n;はheader関数を使ってHTTPヘッダとして送信する必要があると思います。 また、私はふだん、print <<<EOM ~ EOM;という形を使っています。printf EOM<< ~ EOM<<という形はPHPで使えるのでしょうか? ということで、以下のように書いてはどうでしょうか。 <?php header("Content-Type: text/html;"); print <<<EOM <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>ハロー!PHP!!</TITLE> </HEAD> <BODY> ハロー!PHP!! </BODY> </HTML> EOM; ?>

CSC
質問者

お礼

返事がおそくなり、すいません。 多忙でしばらくPHPの勉強ができませんでした。 久々に、CGIとPHPの勉強を同時に再開しようと思い、 早速試してみます。 ありがとうございました。

その他の回答 (1)

noname#15589
noname#15589
回答No.2

PHPから一度HTMLへエスケープすればどうかな? たとえば: <?php $c=$a+$b; ?> <html> <head> <body> <?php print "<h1>hello</h1>"; ?> </body> </html>

関連するQ&A