【HTML or CSS or PHP】


フォームから値を受け取るとき、
アルファベットのとぎれのない文字列
例えば、(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
を入力されてしまったとき、
CSSでword-break: break-all;
しないとレイアウトが崩れてしまいます。

しかも、 word-break: break-all;はIEのみでFFやOPERAなど他のブラウザだと、
やっぱり崩れてしまいます。

HTML or CSS or PHPを駆使して、簡単にこのいたずらを回避する方法があれば、ご教授ください。

※ちなみに、自分で、PHPで任意の文字数毎に改行させるスクリプトを書いてみましたが、
これだと、ユーザー側でブラウザの表示サイズを変えたい時には、
固定にするほかありません。(可変だと、任意の文字数が指定できないので。)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/05/08 22:20:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:satanii No.1

回答回数61ベストアンサー獲得回数3

ポイント27pt

http://q.hatena.ne.jp/1138357071

固定長にしてはダメなんでしょうか。2.と3.に例を示しておきましたのでご覧になって下さい。

id:keijiro

tableもOVERFLOWもちょっと違う感じです。

ありがとうございます。

2006/05/02 13:14:25
id:Sampo No.2

回答回数556ベストアンサー獲得回数104

ポイント27pt

http://yoosee.net/d/archives/2005/01/04/002.html

10文字に一回ぐらいWBRタグを挿入するのがいいんじゃないでしょうか。

漢字コードの中やタグの中に割り込まないようにケアする必要がありますが。

id:keijiro

ふむむ。

w3c的には、アレですが、

解決方法のひとつですよね。

ありがとうございます。

2006/05/02 13:16:30
id:chankaz No.3

回答回数53ベストアンサー獲得回数3

ポイント26pt

http://jp2.php.net/manual/ja/function.wordwrap.php

入力値はそのままログに保存するとして、

表示の際に

if (preg_match('/^[-_.!~\^\*\'()a-zA-Z0-9;\/?:\@&=+\$\[\],%#]+$/', $string) && strlen($string) > 20) {
	$string = wordwrap($string, 20, "\n" ,1);
}
echo $string;

でいかがでしょうか。

上記の場合は、$string がタグや日本語を含まず、20字以上の文字列の場合のみ、20字ごとに \n が挿入されるので、表示幅に応じて改行されます。

id:keijiro

ありがとうございます。

質問文にも書いたのですが、こんな感じの事は試してみました。

2006/05/04 12:01:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません