[▲前のスレッド]

2783. 記事の最後の無用な改行削除 
T.Akiba 2004/11/20 (土) 11:13:29
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Cyclamenを利用しています。

記事の最後に無用な改行がある場合に、自動で削除してみたくなりました。

過去の書き込みについて、データは変更せずに表示上の文末の改行を削除するには、
cyclamen.cgi の sub print_article の中の
 $value =~ s/"/\"/g;
の後に
 $value =~ s/(<br>)+$/<br>/g;
と入れることで対応できました。

一方、これからの書き込みについて、文末の改行を削除して保存するようにするには、
cyclamen.cgi の sub read_stdin の中の
 $value =~ s/\r\n|\n\r|\r|\n/<br>/g;  (2箇所)
の後に
 $value =~ s/(<br>)+$/<br>/g;
と入れることで、どうやら動作しました。

おかしいところなどありませんでしょうか?


2784. Re:記事の最後の無用な改行削除 
あけび 2004/11/20 (土) 11:42:07
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; SV1)
前者は特に問題ないと思いますが、後者のread_stdinは投稿本文だけではなく標準入力全般に関わる部分ですので、ここには手を加えないほうが無難です。
投稿時、本文に3行以上の空行がある場合それを2行に短縮する処理が既にありますので、その付近に処理を追加するといいと思います。

cylib.cgi
$FORM{'value'} =~ s/(<br> ?){4,}/<br><br><br>/ig;
の直後に
$FORM{'value'} =~ s/(<br>)+$/<br>/ig;
を追加


2785. Re2:記事の最後の無用な改行削除 
T.Akiba 2004/11/21 (日) 08:26:04
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
▼ あけびさん
ありがとうございました。
ばっちりできました。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.84.01
[ut:0.008][st:0.000]