電子書籍の厳選無料作品が豊富!

cgiで.datファイル内の一文を削除したい。
HP上で文書等を保存すると.datファイルに以下の様な文章が追加され、cgiでそれを開いてhtml表示させるとリンクとして使用できる様にしています。日時等の数字は保存時のものとなります。

<form action="" name="MyForm20100805" method="post"><input type="hidden" name="rm" value="2010.08/2010.08.05-a.txt"><input type="hidden" name="del" value="2010/08/05">2010/08/05<input type="button" value="閲 覧" onClick="MyForm20100805.action='hyoji-a.cgi';MyForm20100805.submit();"><input type="button" value="削 除" onClick="MyForm20100805.action='del.cgi';MyForm20100805.submit();">[更新日時:平成2010 年08月日16時54分14秒]</form>

今、間違えて保存してしまったり、不要になった場合に、削除ボタンを押すと.dat内から上記の部分のみを削除するcgiを組みたいのですが、s/やtr/で色々と挑戦したのですが一致する部分がないと判断されてしまったり、ボタンだけが残ってしまったり、最終的には.datファイルにリンク生成時にこの1文を検索文字列としてhidden要素で追加しようとした時に、文字列の中に文字列があって更にその中に文字列が~・・・みたいになってしまっている次第です。
とっても簡単で単純なことを聞いてしまっているのかもしれませんが、よろしければどのように上記の文字列を削除すればよいのか、御教授いただけませんか?

A 回答 (2件)

このdatファイルの中には<form action~</form>までのデータしかないのでしょうか?


で、管理のみに使うファイルですよね。
もしそうだとしたら、1行で打ち出すようにして、文頭に管理番号ふってしまったら、
管理が楽になると思います。今のファイルは改行を一旦全消しして、「</form>」を「</form>\n」に変換して、古い順に管理番号ふってしまえばコンバートが終了します。
で、追加の際にはそのファイルを開いて最新の管理番号+1で新しい管理番号をふったら
途中削除とかで飛ぶことはあっても管理番号で管理はできると思いますが・・
実はもっともっと複雑なファイルなんでしょうか?
    • good
    • 0
この回答へのお礼

いえいえ、仰る通り.datファイルには<form>~</form>で1列として複数行が入っている形式で保存してあります。
管理番号を振るといいのですね!
確かに以前どこかで、メールフォームをそのような形式で管理する方法を見たことがあるような気がします。
ありがとうございます!ちょっとチャレンジしてみますね。

お礼日時:2010/08/12 12:45

そうでしたか、それでしたら、管理番号をhiddenタグで添付しておいて、


フォームデータを読み込み後、その番号に該当する行だけ飛ばしてpushした配列を
新しく上書きしてしまえば、削除できますよね。頑張ってください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!