• ベストアンサー

ヒアドキュメントはHDMLには使えないのでしょうか?

いつもお世話になっています。 tukaの古い携帯用にCGIの中のHTMLをHDMLに書き換えて ヒアドキュメントでかこってやってみたのですがエラーになりました。HDMLではヒアドキュメントはつかえないのでしょうか?ちなみに1行づつprint文で書いた場合は動きました。長い記述でめんどくさいので、できればヒアドキュメントを使いたかったのですが無理なんでしょうか?

  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • taskuni
  • ベストアンサー率71% (49/69)
回答No.1

CGIはサーバ側の動作なので、端末が何だろうと関係ないと思いますよ。 ヒアドキュメントの書き方に問題があるのでは? 2,3行出力するテストプログラムを作ってみて、動作するかどうか確認するといいと思います。

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_kj03.htm

関連するQ&A

  • print HTML~をヒアドキュメントで

    CGIを改造して利用したいと思っています。 データの結果をhtmlファイルに出力するようにしたいと考えています。 sub html_reg{ open(HTML,"+>>../$no.html"); print HTML "<html>\n<head>\n"; ~~ print HTML "</body></html>\n"; close(HTML); } と言う風になっています。 しかし、通常のhtml文なので、「print HTML "~\n";」をつけるのと「""」があったときに「\"\"」にするのがとても面倒です。 と言うことで、ヒアドキュメントで記載できないかと考えたのですが、print HTML の「HTML」の部分をどのようにしたらよいかがよくわかりません。 どのように記載すればよいでしょうか?お願いします。

    • ベストアンサー
    • Perl
  • ヒアドキュメントの外部化

    perl勉強中です。ヒアドキュメント簡単でいいのですが、 CGIファイル内に書き込み変更することはあまりしたくないのですが、 よくスキン式にしているCGIを見かけますが、どのように外部HTMLファイルを読み込みしているのでしょうか? 下記ヒアドキュメント部分を外部ファイルから読み込みたいです。 なかなか詳しく書いてあるサイトがないので(探し方が下手なので)紹介していただけるサイトはないでしょうか? print <<EOM; <htmlタグ・・・・> EOM

  • ヒアドキュメントが表示されない

    perl初心者です・・ perlを本で学習してる最中なのですが、print文だとブラウザに表示されるのに、ヒアドキュメントで記述するとブラウザに表示されません。 (AN HTTPDサーバーを使用して、起動させています。) 例えば、 #!/usr/bin/perl print "content-type: text/html\n\n"; print "<html><body>"; print "ああ"; print "<br>"; print ("いい","うう","ええ","です"); print "<br>"; print "</body></html>"; ↑この記述だとブラウザに表示されますが、 #!/usr/bin/perl print <<HTML_DOCUMENT; content-type: text/html <html> <body> ああいいううええです </body> </html> HTML_DOCUMENT ↑このようにヒアドキュメントに書き換えてブラウザで表示させると、 サーバーが見つかりませんと表示されます。 ちなみに、本に添付してあるCD-ROMの回答ソースをコピペして表示させてみましたが、同様にサーバーが見つかりませんと表示されます。 ですので、文法には間違いはないと思うので、ANHTTPDサーバーに原因があるのではないかと思われるのですが、何か、ANHTTPDサーバーに設定をする必要があるのでしょうか? 教えてください。 ちなみに、環境windowsXPです。

    • ベストアンサー
    • Perl
  • ヒアドキュメントができない。

    PHP初心者です。 Mac OS X 10.4.10で、MAMPという、WindowsでいうところのXAMPP のような環境でPHPを使っているのですが、ヒアドキュメント print<<<nantoka nantoka; とかができません。やると、画面が真っ白になります。 Terminalでやってみると、print<<<nantokaの行でParse errorが出ています。 Windowsだと確かそんなことはなかったはずなのに・・・。 なぜでしょうか?

    • ベストアンサー
    • PHP
  • ヒアドキュメントの中身の始めと終わりがhtmlになったとき改行しない方法

    ヒアドキュメントで、 print <<"EOM"; <title> EOM if($title1 ne ""){print "$title1";} else{print "$title2";} print <<"EOM"; </title> EOM と記述すると、吐き出されたhtmlソースは、 <title> タイトル1 </title> と改行されてしまいます。 これをヒアドキュメントのままで、 下記のように1行で書き出す方法はありますでしょうか。 <title>タイトル1</title> printで書けばできますが、 ヒアドキュメントで書く方法をお願いいたします。

    • ベストアンサー
    • Perl
  • PERLでのヒアドキュメントの呼び出し

    以下のようなCGIの改造を行いたいのですが、 sub abc{ ・ ここ1  ・ $check1=<<"EOF"; <HTML><HEAD><TITLE>test</TITLE></HEAD><BODY>  ・ <img src="$directryname[0]" width = "80">  ・ </BODY></HTML> EOF ここ2 print $check1; exit; ここ1、もしくはここ2のところに $directryname[0] = "http://abc/aa/a.jpg"; を入れてもsub abc内のimgタグで..jpgが表示されません。 ヒアドキュメントでぐぐって見ましたが、適切な回答が得られませんでした。よろしくお願いします。

    • ベストアンサー
    • Perl
  • ヒアドキュメントとクラスの基本的?な質問です

    PHPのヒアドキュメントを使ってHTMLのクラスを使ろうと思っているのですがいきなりわからなくなってしまいました。下のソースのどこがいけないのでしょうか。 エラー内容は Parse error: parse error, unexpected $end in \Html.php on line 19 です。よろしくお願いします。 index.php <?php require_once("./Html.php"); $html = new Html(); print $html->NoFrame(); ?> Html.php <?php class Html{ function Html(){ } function NoFrame(){ $html = <<<EOF <html> <head> <title> </title> </head> <body> おーい </body> </html> EOF; return $html; } } ?>

    • ベストアンサー
    • PHP
  • ヒアドキュメントで表示した、ある特定の全角文字が文字化けする(直接printだとOK)

    Redhat7.3 perl5.6 タイトルの通りなのですが、 ヒアドキュメント中にある特定の文字列(確認できたのは、「表」「申」) をHTML表示すると、文字化けしてしまいます。 print "Content-type: text/html\n\n"; print '<html><head><title>test</title></head><body>'; print << "HTML"; 1:表 HTML print '2:表'; print '</body></html>'; という記述方法ですが、 2の方は正しく表示されるのですが、 1:の方が文字化けして表示されてしまいます。 他の全角文字は問題なく表示されています。 どなたか原因をご存知の方、ぜひともご教授ください。

    • ベストアンサー
    • Perl
  • CGIスクリプト中のフォーム入力の可否について…

    CGIスクリプト中で、HTMLを表示するときに、 『print文』や『ヒアドキュメント』を使用するのですが、ただ単に文字を表示させることはできます。 ところが、入力フォームを表示させようとするとエラーになってしまいます。 言語はperlです。 print "<html>"; print "<HEAD><TITLE>ID PASS</TITLE></HEAD>"; print "<body>一致したよ"; print "<form method="get" action="kakikomi.cgi">"; print "<input type="hidden" name="kakusuid" value="$ide">"; print "<input type="hidden" name="kakusupassw" value="$passw">"; print "<input type="submit" value="toukou">"; print "</form>"; print "</body>"; print "</HTML>"; エラーの種類は二種類出てきます。 一つは、構文エラーで、 もう一つは『使用できない文字があります』 の二つです。 後者のエラーは、スクリプト中の"toukou"を"投稿"としたら出てしまいます。しかし、スクリプト前半の『一致したよ』という日本語はしっかり認識されているのに…です。 前者のエラーは、"投稿"を"toukou"とすると出てきます。 しかし、どこが間違っているのか、全く理解できません。 もしかしたら、CGIスクリプトの中では入力フォームは使えないのではないかと思っています。 上記のスクリプトの前後は省略していますが、フォーム入力に関する何行かをコメント扱いしたら、しっかり動いてくれるのです。しかも、『一致したよ』という日本語も表示してくれます。 尚、スクリプト中の変数は、すべて省略部分にて定義してあります。 どなたか、このスクリプトの間違いを教えてくださいませんでしょうか? 尚、上記スクリプトはエディタからのコピペですので、変な改行がありますが、原文は一つのprint文につき一回の改行です。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • requireの使い方のどこがおかしいのでしょう?

    言語はperlです。 789.cgiから456.plを呼び出したいのですが、シンタックスエラーが出てきます。 789.cgiのrequireに関する行をコメントにしたら実行されるのですが…。 requireを使わずに、サブルーチン自体を789.cgiの中に書き込むことには成功しているのですが、 イマイチrequireを使った呼び出しのコツがわかりません。 どなたかご教授下さい。 以下にスクリプトを示しておきます。 よろしくお願いします。 *****以下789.cgi***** #!/usr/local/bin/perl use CGI::Carp qw(fatalsToBrowser); require "456.pl"; $a=12; $b=15; $d="xxxxxxxx"; $d=&plus(); print "content-type:text/html\n\n"; print <<"HTML_HTML"; <html> <head> <title> ヒアドキュメント </title> <body> ***** <br> $d <br> ***** <br> $a <br> ***** <br> $b <br> ***** </body> </html> HTML_HTML ***********以下456.pl************ sub plus { my $a=10; my $b=10; $c=$a+$b; return $c; }

    • ベストアンサー
    • CGI