ssiのデータが入ったファイルを保存したい。
[上に]
[前に]
[次に]
rei
2000/02/02(水) 15:35:08
CGI,SSI勉強中の初心者です。
CGIで出力したテキストファイルが2つあって、それをSSIでくっつけるのですが、SSIでくっつけた最終的なファイルをデータの入った状態(つまり、ブラウザに表示されてる状態)でHTMLとして保存したいのですが、CGIを使って、自動化することはできるのでしょうか?
ご存知の方、ぜひぜひ! 教えてください。
EMI
2000/02/02(水) 16:22:53
保存ってローカルにですか?
だとしたら、不可能です。
無責任官庁
2000/02/02(水) 16:47:25
要するにSSIを使わずに、SSIがやることをCGIでやりたい、
そういう事ですよね?
もちろんできますよ。
HTMLファイルとテキストファイルを読んで、HTML中の該当する場所に
テキストファイルを挿入してあげればいいだけです。
$HTMLFILE =~ s/テキトウにHTML内に付けたラベル/$TEXTFILE/;
そういうことじゃないんです?
rei
2000/02/02(水) 17:03:09
解答、ありがとうございます。
説明がはっきりしてなくて、すみません。
htmlで書いたフォームが2つ(仮にa.html,b.html)あって、
それぞれに、cgi設定しています。
「a.html」内のボタンを押すと「a.cgi」により「a.txt」に書込み。
「b.html」内のボタンを押すと「b.cgi」により「b.txt」に書込み。
「a.txt」と「b.txt」をくっつけて「XXX.shtml」ができる。
つまり、フォームに入れたデータの自動html化をしたいのです。
ここまではできているんですが、
最後に、「a.txt」と「b.txt」をクリアにし、
「XXX.shtml」を名前をつけて保存したいんです。
でも、保存するとき、ssiのファイルってデータではなく、命令文(コマンドというのでしょうか)のままですね?データの入った状態で、
「shtml」としてでなく、単純な「html」ファイルとして
保存することは、できるのでしょうか?
hiro-kim
2000/02/02(水) 19:52:29
私はこう読みました。
c.cgiを実行すると,すでに存在すると見なしてよい2つの入力ファイル:
a.txtの内容 "<html><body><!-- #exec cgi='" と,
b.txtの内容 "ファイル名'--></body></html>" を読み出して,
1つの出力ファイル:
c.htmlの内容:"<html><body>(SSIと見なしての実行結果)</body></html>"
がWebサーバ側に保存されるようにしたいと。
この場合,中間ファイルの拡張子は.shtmlである必要はないですね。SSI機能は.shtmlファイルに対する「Webブラウザからの要求」があったときに実行されるのであり,上記の例ではWebブラウザは介在しないから拡張子は単なる.txtでよい。便宜上,SSIの文法を採用したというだけ。
ということで,無責任官庁さんのおっしゃる方向になるように思います。
[上に]
[前に]
[次に]