
No.5ベストアンサー
- 回答日時:
もし、掲示板書き込みの中で、タグで<br>を入れなくても、改行キーが押されたものを自動改行で表示したいというなら、下の記述を参考にPerl記述をしてみてはいかがでしょうか?
それより、ブラウザ幅での折り返しの問題なら、元のcgiで書き込み部分を表示するのが、テーブルになっていたため、<PRE> と </PRE> という文字列があるのかもしれません。よく見て、それを削除すればよいでしょう。
あと、普通、掲示板は折り返し表示しますから、別のそうしたタイプの掲示板用cgiを見て、研究されては、どうでしょう?
________________________
表示HTMLの横サイズを規定しない限り、改行キーなしで書き込まれたものは、
普通は、TGBn2&¥]
コメント部分の自動改行
フォームからデータが送信される際に、データは%16進法という方法で送られてきます。 その時に、フォームからは改行の印(\r\n,\r,\n)もコードとして送られてきています。 その印を<br>タグに変換し、HTML表示の際に改行させるのが、コメント部分の自動改行です。
この変換にはs ~/変換前の文字列/変換後の文字列/g;という式を使います。 この式を利用すると、
$com =~ s/\r\n/<br>/g;
$com =~ s/\r|\n/<br>/g;
$comに入っている文字列のうち、\r\n、\r、\nという文字列が見つかった場合には<br>という文字列に変換しなさい、という処理をすることができます。(改行コードの種類が違うのは、WIN用、Mac用、UNIX用の改行コードが異なるため)
また、最後についているgは、グローバルの意味で、これがない場合は、最初に置換する文字を見つけたら、その後は処理を続行しません。改行のすべてを変換するためには、最後にgをつけて、すべての改行コードを変換する必要があります。
参考URL:http://www2.inforyoma.or.jp/~kouya/hermitage/cgi …
この回答への補足
有難うございます。オリジナルを試したところ、オリジナルも改行されず(改行を入れず書込んだ場合)。そういう作りなのかなー?ちなみにオリジナルのデコード部分です。
sub decode {
local($buf, @in, $key, $val);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
&error("投稿量が大きすぎます") if ($ENV{'CONTENT_LENGTH'} > 51200);
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} else { $buf = $ENV{'QUERY_STRING'}; }
@in = split(/&/, $buf);
foreach (@in) {
($key, $val) = split(/=/);
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 文字コード変換
&jcode'convert(*value,'sjis');
# タグ処理
$val =~ s/\0//g;
if (!$whatsnew && !$tagkey) {
$val =~ s/</</g;
$val =~ s/>/>/g;
} else {
$val =~ s/<!--(.|\n)*-->//g;
$val =~ s/<>/<>/g;
}
# 改行処理
if ($key eq "comment") {
$val =~ s/\r\n/<br>/g;
$val =~ s/\r/<br>/g;
$val =~ s/\n/<br>/g;
} else {
$val =~ s/\r//g;
$val =~ s/\n//g;
}
$in{$key} = $val;
}
$in{'url'} =~ s/^http\:\/\///;
$mode = $in{'mode'};
if ($in{'sub'} eq "") { $in{'sub'} = "無題"; }
}
長くてスミマセン。m(__)m
有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
No.6
- 回答日時:
問題となってる長文の記事の部分だけでいいのでソースをここに書き込んでみたらどうでしょうか
内容など見せたくない部分は←ここに~~→というように書き換えてもいいので
この回答への補足
有難うございます。オリジナルを試したところ、オリジナルも改行されず(改行を入れず書込んだ場合)。そういう作りなのかなー?ちなみにオリジナルのデコード部分です。
sub decode {
local($buf, @in, $key, $val);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
&error("投稿量が大きすぎます") if ($ENV{'CONTENT_LENGTH'} > 51200);
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} else { $buf = $ENV{'QUERY_STRING'}; }
@in = split(/&/, $buf);
foreach (@in) {
($key, $val) = split(/=/);
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 文字コード変換
&jcode'convert(*value,'sjis');
# タグ処理
$val =~ s/\0//g;
if (!$whatsnew && !$tagkey) {
$val =~ s/</</g;
$val =~ s/>/>/g;
} else {
$val =~ s/<!--(.|\n)*-->//g;
$val =~ s/<>/<>/g;
}
# 改行処理
if ($key eq "comment") {
$val =~ s/\r\n/<br>/g;
$val =~ s/\r/<br>/g;
$val =~ s/\n/<br>/g;
} else {
$val =~ s/\r//g;
$val =~ s/\n//g;
}
$in{$key} = $val;
}
$in{'url'} =~ s/^http\:\/\///;
$mode = $in{'mode'};
if ($in{'sub'} eq "") { $in{'sub'} = "無題"; }
}
長くてスミマセン。m(__)m
有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
No.4
- 回答日時:
普通は、テーブルにすれば、そのようにはなりません。
自動的に折り返します。
補足で、自分でテーブルを外したと言われていますが、それが原因だと思います。
その時にどのように記述したかを書かなければ正解は得られません。
きっと、わざわざ折り返さないような処置をしているのだと思いますよ。
オリジナルのままでは問題が無かったはずです。
自分で改造したリスクだと思います。
有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
No.3
- 回答日時:
#2の方の指摘に加え、
<PRE>~</PRE>が入っていませんか?
この回答への補足
KENTさんのSUN BOARDと言うbbs( http://www.kent-web.com/bbs/index.html )でフォーム部分はオリジナルはテーブルを使用しているのですが、私はテーブルを外して書換え、ローカルで試しています。コメントを長く書込むと、ブラウザに結果が表示されると改行されないで横のスクロールが出るのです。ローカルでやることは関係ないですよね?ちなみにIE5でアパッチでローカルテストしています。
補足日時:2002/09/08 11:02有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
No.2
- 回答日時:
通常のテキストであればブラウザが自動的に枠に合わせて改行します。
逆に、改行をさせないようにするタグ
<NOBR>~</BOBR>や
スタイルシートで
<div style="white-space:nowrap">~</div>と
入っていないでしょうか。
この回答への補足
KENTさんのSUN BOARDと言うbbs( http://www.kent-web.com/bbs/index.html )でフォーム部分はオリジナルはテーブルを使用しているのですが、私はテーブルを外して書換え、ローカルで試しています。コメントを長く書込むと、ブラウザに結果が表示されると改行されないで横のスクロールが出るのです。ローカルでやることは関係ないですよね?ちなみにIE5でアパッチでローカルテストしています。スタイルシートは入っていません
補足日時:2002/09/08 11:01有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
No.1
- 回答日時:
<BR>
<P>
これ使えば改行は出来ますが・・・
その掲示板は書き込むときに改行を上のようなタグに変換変換しないのでしょうか?
この回答への補足
KENTさんのSUN BOARDと言うbbs( http://www.kent-web.com/bbs/index.html )でフォーム部分はオリジナルはテーブルを使用しているのですが、私はテーブルを外して書換え、ローカルで試しています。コメントを長く書込むと、ブラウザに結果が表示されると改行されないで横のスクロールが出るのです。ローカルでやることは関係ないですよね?ちなみにIE5でアパッチでローカルテストしています。
補足日時:2002/09/08 11:00有難う御座いました。原因がわかりました。アルファベット(半角使用)を連続で打ち込むと自動改行しないみたいです。日本語は変換時Enterを押すからなのかしれませんが、チャンと自動改行されます。よく分かりませんが、とにかく感謝感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- Windows 8 QTTabBarが無反応になる 2 2023/04/07 14:17
- Google Drive googleスプレッドシートで文章がセルにきれいに収まらなくて困っています 2 2022/07/31 16:00
- Excel(エクセル) エクセル セル内の文字数を超えたら自動的に折り返して表示 2 2023/07/24 05:32
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- SSL・HTTPS 掲示板サイトへの書き込みができない件(ブラウザソフトを変えてもできない) 2 2022/11/20 10:48
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- 訴訟・裁判 ネットの掲示板〝爆サイ〟で、前の会社の嫌な上司の実名を出して誹謗中傷を書き込んだら、プロバイダより〝 1 2022/04/07 18:05
- 訴訟・裁判 ネットの掲示板〝爆サイ〟で、前の会社の嫌な上司の実名を出して誹謗中傷を書き込んだら、プロバイダより〝 1 2022/04/07 18:06
- 事件・犯罪 匿名掲示板で名前を出さずに名誉毀損されています。証拠として押さえて開示請求出来ますか? 1 2022/05/30 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
HTML/CSSを使って写真のような...
-
レスポンシブで困っています・・
-
テーブルの行を折りたたみたい...
-
ホームページの制作について教...
-
GoogleSearchControlにホームペ...
-
HTMLでクロス抽出したい
-
iPhoneで HTMLファイルを閲覧
-
スマホ(android)のタッチパネ...
-
手元のHTMLフォームの検索キー...
-
画像が分割されて切り替わる、...
-
レイアウトが異なる別のワーク...
-
スマホで特定のサイトを表示さ...
-
、URL化させるにはどうしたらい...
-
HPレイアウトが同じページのヘ...
-
テーブルのセルデータを自動改...
-
css初心者 フレックスボックス...
-
詐欺メールがまた来ました。5月...
-
Dreamweverは今も主流なんです...
-
動画と画像&タイトル2列を横並...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
テーブルの行を折りたたみたい...
-
レスポンシブで困っています・・
-
HTMLでクロス抽出したい
-
iPhoneで HTMLファイルを閲覧
-
HTML/CSSを使って写真のような...
-
ホームページの制作について教...
-
スマホでHTMLファイルを開いて...
-
GoogleSearchControlにホームペ...
-
メモ帳の段落の揃え方
-
css初心者 フレックスボックス...
-
スマホ(android)のタッチパネ...
-
WEBページを強制的に横画面で見...
-
角丸画像の背景色を透明にした...
-
、URL化させるにはどうしたらい...
-
HTMLタグのあるCSVファイルを利...
-
静止画画像をクリックすると音...
-
テーブルのセルデータを自動改...
-
テーブルタグのセルの幅の一部...
-
スマホで、左右にスワイプして...
おすすめ情報