• 締切済み

HTMLを吐き出している途中で止まってしまう。

html,perlとMySQLを使ってサイトを作成しています。 HTMLを吐き出している途中でとまってしまう現象があります。何回か、更新ボタンを押すこととにより全部のHTMLを吐き出すことができるのですが、途中で止まってしまうことが結構の回数であります。決まって、途中終わってしまう時はHTMLが少し語尾にちょこっと出て終わってしまいます。 例) llll lllll <TD> という感じです。 対策はあるのでしょか? お願いします。

  • gcc
  • お礼率8% (10/125)
  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • inetd
  • ベストアンサー率23% (43/184)
回答No.1

よくわかりませんが、とりあえず perl の出力をバッファリングしないようにしてみてはどうでしょうか? perl では $| = 1; というのがあるとそこから先の print などでの出力がバッファリングされずに実行時に即出力されるようになります。そうすると出力される内容が少し変って原因調査がやりやすくなるかも知れません。 p.s. 一つ考えられることは、DBを使っているので検索で時間が掛かってタイムアウトしているのではないかということです。これはWebサーバの設定の問題ですが、たとえばCGIの実行で3分以上経ったら異常終了ということでWebサーバ側から強制終了させるような設定になっていれば出力の途中で終了するというのは考えられます。

関連するQ&A

  • HTML

    phpファイルからHTMLの書き出しについての質問です できるとこまでやってみたんですが途中にmysqlから取り出したデータを処理するためのwhileなどのphpがあるためうまくいきませんでした 途中にphpがある場合、どうすればうまくいきますか? PHP Version 5.2.5です ファイルロックはこんな感じでしょうか? よろしくお願いします $html = <<<END_OF_DATA <html> <head> <title>タイトル</title> </head> <body> <table> <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td>{$table['id']}</td> <td><?php print(htmlspecialchars($table['name'], ENT_QUOTES)); ?></td> </tr> <?php } mysql_free_result($recordSet) or die("MySQL切断に失敗しました。"); mysql_close($link) or die("MySQL切断に失敗しました。"); ?> </table> </body> </html> END_OF_DATA; $filename = 'index.html'; $fp = fopen($filename,'w'); stream_set_write_buffer($fp,0); flock($fp, LOCK_EX); fwrite($fp, $html); flock($fp, LOCK_UN); fclose($fp);

    • ベストアンサー
    • PHP
  • HTML 動かせるテーブル

    HTMLで リンクやボタンをクリックするとテーブルみたいなものが出てきて そのテーブルに「閉じる」ボタンをつけたりできるものを探しています。 (新しいウインドウで開くものではありません。) Microsoftのページみたいなものです。 <例>  最新お知らせ ←リンク をクリック ↓ ――――――――――――――― |              閉じる |お知らせ |XXXを更新しました。 ――――――――――――――― ←このようなもの わかりづらくてすみません。

    • ベストアンサー
    • HTML
  • HTMLのタグ整形スクリプトについて

    PerlでHTMLのタグ整形スクリプトを作成しようと思っているのですが、 例 <html><head><title></title></head> <body><table><tr><td></td></tr></table></body> </html> ↓ <html> タブ<head> タブタブ<title></title> タブ</head> タブ<body> タブタブ<table> タブタブタブ<tr><td> タブタブタブ</td></tr> タブタブ</table> タブ</body> </html> こんな感じなんですが・・・。

    • 締切済み
    • CGI
  • ExcelファイルからHTMLファイルを自動で作成

    種類   今日の売上   総売上 みかん     5       15 りんご     6        9 すいか     1        3 のようなExcelファイルがあります。 これをWeb上に表示するため、以下のようなHTMLファイルにしています。(簡単にしてありますが) <TABLE><TR> <TD>種類</TD> <TD>今日の売上</TD> <TD>総売上</TD> </TR><TR> <TD>みかん</TD> <TD>5</TD> <TD>15</TD> </TR><TR> <TD>りんご</TD> <TD>6</TD> <TD>9</TD> </TR><TR> <TD>すいか</TD> <TD>1</TD> <TD>3</TD> </TR></TABLE> これを毎日更新しているのですが、自動でできないかなぁと思いまして…。 VBAでこれらのことをボタン一つで行うようなことはできるでしょうか? (表をみて→HTMLファイルに変換) 例えば種類をHTMLファイルに変換するのなら "<TD>" & Syurui & "</TD>" ですよね? でもこれを1行ずつに行っていくとそれをまたまとめなくてはならなくて…。 一度でHTMLファイルを作成するような方法はありますか?

  • データベースの更新に対して、表示変わらず

    以下の条件で、データベースのテーブルを更新したのですが、画面の方は変更前の表示になります。(更新ボタンを押せば変わりますけど)対策方法を知っている方教示願います。 Perl 5.005_02 MySQL 3.22.23b window.open("abc.cgi?xxx=999&yyy=... で呼び出し、abc.cgiの中でMySQLからデータを取ってきて表示する。

    • 締切済み
    • CGI
  • ページが表示されなかったり途中で途切れてたりする。

    IEなどのブラウザでwebページを閲覧して別のページに移る時に頻繁にページを表示できません、になったりページが途中で途切れてたりすることが何故かあります。 更新ボタンを押せばちゃんと表示されるのですがあまりにも頻繁に起こりすぎて正直困ってます インターネット一時ファイルを削除したり別のブラウザで試してみても同じ現象が起こります。 どうにかならないでしょうか?

  • MySQL+PHPでリストから詳細表示

    MySQL+PHPで顧客情報のデータベースを作っているところで詰まってしまいました。下のようなテーブルがあります。 number name furi ・・・ ------------------------- 1 北  kita 2  南 minami 3    東 higashi 4    西 nisi このテーブルのリスト一部分を表示して 詳細ボタンを押すと顧客情報の詳細が表示 できるようにしたいのですが、どのように すればいいかまったくわかりません。 一覧表示      名前 フリガナ   詳細  北   kita 詳細  南   minami  詳細 西   nisi こんな感じで詳細を押すと、顧客情報の詳細が 表示されるようにしたいのですが。 一覧を表示させるPHPはこんなかんじで作りました。 //SQL文 tab1表から全行を取り出し、number列の昇順に整列する $sql = "select * from addrmain order by number"; //SQL文を実行する $rs = mysql_db_query($db,$sql); //列数を取得する $num = mysql_num_fields($rs); //HTML文を出力 テーブルの開始を指定 print("<table border=1>"); //test表の列数と同じ回数を繰り返す for ($i=0;$i<$num;$i++){ //HTML文を出力 列名を <td>で囲んで出力 print("<td>".mysql_field_name($rs,$i)."</td>"); } //test表の行数と同じ回数を繰り返す while($row=mysql_fetch_array($rs)){ //HTML文を出力 表の行の開始<tr> を出力 print("<tr>"); //test表の列数と同じ回数を繰り返す for($j=0;$j<$num;$j++){ //HTML文を出力 列の内容を <td>で囲んで出力 print("<td>".$row[$j]."</td>"); } //HTML文を出力 表の改行</tr> を出力 print("</tr>"); } //HTML文を出力 テーブルの終了を指定 print("</table>"); なにをどのようにしたら良いかお知恵をお貸しください。お願いします。

    • ベストアンサー
    • MySQL
  • HTMLの内容がすべて表示されるまで、ボタンを押せないようにするには

    HTMLで比較的多くの量のデータを表示しており、表示にJavaScriptでコンボボックスの選択肢の初期化等をしています。 通常は、データを表示している途中であってもボタンが押せてしまうため、JavaScriptでの処理がされる前に、不正なデータがサーバーに送られてしまい、不具合が発生しています。 ボタンを使用不可にしておき、JavaScriptで使用可にするなどの対策は思いつきましたが、HTMLのオプションなど、もっと簡単な方法は無いでしょうか。

    • ベストアンサー
    • HTML
  • PHPでHTMLをXMLに変換したときに消える内容

    教えてください。 スクレイピングのために、よく分からないままに、 PHPでHTMLをXMLに変換して、Xpathで参照しようとしています。 が。 その前段で、「HTML内に存在する内容が、XMLに変換した際に 消えてしまう」という現象に悩まされております。 例を挙げますと、 --------------------------------------- <html> <body> <table> <tr> <td><b>foo</b> bar<br> </td> </tr> </table> </body> </html> --------------------------------------- みたいなページを、 --------------------------------------- <?php $html = file_get_contents('http://xxxxxxxxxxxxxxxxx.com/foobar.html'); $dom = new DOMDocument(); @$dom->loadHTML($html); $xml = simplexml_import_dom($dom); print_r($xml); ?> --------------------------------------- のように処理すると、 --------------------------------------- SimpleXMLElement Object ( [body] => SimpleXMLElement Object ( [table] => SimpleXMLElement Object ( [tr] => SimpleXMLElement Object ( [td] => SimpleXMLElement Object ( [b] => foo [br] => SimpleXMLElement Object ( ) ) ) ) ) ) --------------------------------------- のような結果になって、「あれ?fooはいるけど、barは何処いった?」となります。 分かっている方には、「そりゃ、おまえ、あたりまえだよwww」 「つーか、なにやっとんのwww」って感じなのかもしれませんが、 さっぱり分かりません。 元のHTMLの書きぶりがダメだからということでしょうか。 お手数をお掛けしますが、どうぞ、ご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPとMySQLの文字化けの対応法は?

    OSはWinXPで、MySQL+PHPのアプリを作成しているところです。 <html> <head><title>配列データの取得</title></head> <body> <table border="1"> <tr><td>題名</td><td>著者</td><td>出版社</td></tr> <?php $host = "localhost"; if (!$conn = mysql_connect($host, "user", "pass")){ die("MySQL接続エラー.<br />"); } mysql_select_db("kisop", $conn); $sql = "SELECT * FROM book_table LIMIT 10"; $res = mysql_query($sql,$conn); while($row = mysql_fetch_array($res)) { print("<tr>"); print("<td>".$row["btitle"]."</td>"); print("<td>".$row["bauth"]."</td>"); print("<td>".$row["bpub"]."</td>"); print("</tr>\n"); } mysql_free_result($res); ?> </table> </body> </html> と、こんな演習をしているのですが、ブラウザに表示させると文字化けしました。 HTML文はEUC、MySQLのデータは、シフトJISで入っていたようです。 そのため、「題名」「著者」などの見出しと、取り出したデータを同時に文字化けさせずに、表示できない 状態です(泣)。 MySQLからデータを取り出すときに、mb_convert_encodingで文字コードを変換してやれば 化けないでしょうが、出力しようとするデータのすべてを変換しなければなりません。 プログラマーさんたちは、文字化けの現象について、どう対応されているのでしょうか? いちいち、mb_convert_encodingで、変換しているものなのでしょうか? 定石のようなものを知りたいところです。 たとえば、HTML文は文字コード○○を使うものだ、設定ファイルを書き換えておく、などなど。 よろしくおねがいします。

    • ベストアンサー
    • PHP