※ ChatGPTを利用し、要約された質問です(原文:テキストエリアにテキストファイルを改行コードごと読み出すには)
テキストエリアにファイルの改行コードを含めて編集する方法
このQ&Aのポイント
テキストエリアからテキストファイルを読み込む際、改行コードが正しく表示されないため、最後の一行しか表示されません。
テキストエリアを使用したテキストファイルの編集と上書き保存を行いたい場合、以下の手順を実行します。
サブルーチンを使用し、コメントファイルの読み込み、編集画面の表示、上書き保存を行います。
テキストエリアにテキストファイルを改行コードごと読み出すには
ただ今勉強中のCGIを使って、テキストファイルの編集・上書き保存をテキストエリアから行いたいのですが、テキストエリアに読み込む時に改行コードが読み込めないためか、最後の一行しか表示できません。どのようにすると、改行コードを含めて編集できるのでしょうか?
その「できないコード(サブルーチン)」は↓になります。
$commentfile = "comment.txt";
■ 読み出し
sub read_commentfile
{
local($masg);
open(IN, $commentfile);
while (<IN>) {$masg = join('',$_);
$massage = $masg;
}
close(IN);
}
■ コメントの編集画面
sub comment
{
local($html);
&read_commentfile;
#HTML作成
$html = << "EOM";
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=$charset">
<title>コメントの編集</title>
</head>
<body>
<form action="$self" method=post>
<input type=hidden name=mode value="savecomment">
<hr>
コメント<br>
<textarea name=masg cols=40 rows=4>$massage</textarea>
<br>
<input type=submit value=" 更新 ">
</form>
<hr>
</body>
</html>
EOM
&print_html($html);
}
■ 上書き保存
sub savecomment
{
local(@text);
push(@text, "$FORM{'masg'}\n");
open(OUT, ">$commentfile");
print OUT @text;
close(OUT);
}
本来でしたら、ファイルのロック・解除、表ダグ、パスワード等の記述もあるのですが、省いてあります。
よろしくお願い致します。
お礼
さっそくのご回答ありがとうございます。もう一度見直します。