• ベストアンサー

連続する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<< ?>

  • CSC
  • お礼率38% (57/148)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • これは何を意味しますか?

    <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <img src="./image/2151.jpg"> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • 「 <!--#exec cgi="***.cgi" --> 」が表示されません

    「main.cgi」というファイルを作り、単純にHTMLを表示するだけのCGIファイルを作成しました。 こんな感じ ------------main.cgi------------ #!/usr/local/bin/perl print "Content-type:text/html\n\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title></title> </head> <body> <略> </body> </html> EOM __END__ -------------------------------- それで、ほかのHTMLファイルに <!--#exec cgi="main.cgi" --> と入力してそのページを見てみると、 [an error occurred while processing this directive] 上の文章が表示されていました。 どうすれば「main.cgi」の内容を表示することができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • echoで画像を呼び出すことができない

    現在、時刻によって呼び出す画像ファイルを変えようと思っています。その部分がこちらです <HTML> <HEAD> <META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.0 for Windows"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <?php //時間によって表示する画像を変更 $now = date('H'); if($now > 18){ echo "<img src="(画像ファイル名)">; }else{ echo "<img src="(画像ファイル名)">; } ?> </BODY> </HTML> echo内に他のhtmlタグを挿入すると普通に表示されるのですが、画像タグを挿入するとエラーが出ます。また、php外で画像タグを使用すると普通に表示されました。どなたか原因が分かる方いましたら教えて下さい、お願いします。

    • ベストアンサー
    • PHP
  • フレームページに文字が表示されなくて困ってます><

    フレームページに文字が表示されなくて困ってます>< フレームページは表示されるのですがmenu.html.htmlやcontents.html.htmlに書いた文字が表示されません どこが間違っているのでしょうか? ーーフレームページーー <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タトル</TITLE> </HEAD> <FRAMESET cols="100,*"> <FRAME name="menu.html.html" src="file:///D:/happystyle/menu.html.html"> <FRAME name="contents.html.html" src="file:///D:/happystyle/contents.html.html"> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY> </NOFRAMES> </FRAMESET> </HTML> ーーmenu.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像置き場 </BODY> </HTML> ーーcontents.html.htmlーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイトル</TITLE> </HEAD> <BODY> 画像表示 </BODY> </HTML> というHTMLを書きました! フレームに表示させたいページのHTMLはフレームと同じフォルダに入っているのですがこれと関係ありますか? どこがおかしいのかまったくわからないです 教えてください!

  • phpの画面表示が真っ白です

    phpをXAMPPのサーバーでやろうとしているのですが、表示されずに真っ白です。 サーバーは出来ているようです。 コードをのせるのでもし間違っていたら教えてください。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitionl//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <?php print'ようこそ'; ?> </body> </html>

    • ベストアンサー
    • PHP
  • このサブルーチン間違っておりませんか?

    以下のサブルーチンを記述したらエラーになります。 どこか間違っておるのでしょうか? 宜しくお願いします。 #------------------------------------------------- sub head { print <<"EOM"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>メールフォーム</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> EOM } #-------------------------------------------------

  • PHPについて教えてください

    下記のindex.htmlとcheck.phpを別々にURLに入力すると正しく表示されるのですが 横の送信ボタンを押したときにcheck.phpにジャンプしてくれません どうしてでしょうか? index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <from method="post" action="check.php"> <input name="nickname" type="text" style="width:100px"> <input type="submit" value="送信"> </from> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php print'ようこそ'; ?> </body> </html>

    • 締切済み
    • PHP
  • CGIで作ったHTMLの文字化けについて

    CGIのヘッダを "Content-type: text/html\n\n" として、HTMLをブラウザに出力するcgiを作っているのですが、 「表示」という文字が「侮ヲ」と文字化けしてしまいます。 HTMLの<head></head>内には print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=shift-jis\">"; と記述して日本語を指定しています。 文字化けの原因がまったくわかりません。 心当たりありませんでしょうか?

    • ベストアンサー
    • Perl
  • 1つのhtmlページにたくさんのCGIを表示したい

    1つのhtmlページにたくさんのCGIを表示したいのですができますか? "Content-type: text1/html\n\n" /* ** CGI版のhello.c(HTML仕様) */ #include <stdio.h> main(){ printf("Content-type:1/html\n\n"); /* ここから HTML でお馴染みのタグ */ <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> /* あいうえお */ "Hello C World!<BR>\n" "</BODY>" "</HTML>" } みたいなCGIを入れたいのですが。

    • 締切済み
    • CGI
  • HTMLの中にCGIファイルリンク

    HTMLファイルの中にCGIファイルへのリンクを作りました。 リンクしてCGIファイルも実行してくれましたが、CGIファイルを実行した後、元のHTMLファイルへ戻したいです。 できますでしょうか? 教えてください! お願いします。 ************************** テストとして、下記のファイルを作りました。 HTMLとCGIのファイル ----------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML><HEAD> <TITLE>テスト</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META content="IBM WebSphere Studio Homepage Builder Version 8.0.0.0 for Windows" name="GENERATOR"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY text=#000000 bgColor=#bbeeee> <H2>テスト</H2> <HR> <FORM> <INPUT type="button" value="計算" onClick="location.href='http://localhost/cgi-bin/test.cgi'" target="_blank style="cursor:hand" title="テスト"> </FORM> <HR> </HTML> ---------------- #!/usr/bin/perl print "Content-Type: text/html\n\n"; `C:/windows/notepad.exe`; -------------

    • ベストアンサー
    • Perl