フォームから値を受け取るとき、
アルファベットのとぎれのない文字列
例えば、(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
を入力されてしまったとき、
CSSでword-break: break-all;
しないとレイアウトが崩れてしまいます。
しかも、 word-break: break-all;はIEのみでFFやOPERAなど他のブラウザだと、
やっぱり崩れてしまいます。
HTML or CSS or PHPを駆使して、簡単にこのいたずらを回避する方法があれば、ご教授ください。
※ちなみに、自分で、PHPで任意の文字数毎に改行させるスクリプトを書いてみましたが、
これだと、ユーザー側でブラウザの表示サイズを変えたい時には、
固定にするほかありません。(可変だと、任意の文字数が指定できないので。)
http://yoosee.net/d/archives/2005/01/04/002.html
10文字に一回ぐらいWBRタグを挿入するのがいいんじゃないでしょうか。
漢字コードの中やタグの中に割り込まないようにケアする必要がありますが。
ふむむ。
w3c的には、アレですが、
解決方法のひとつですよね。
ありがとうございます。
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 が挿入されるので、表示幅に応じて改行されます。
ありがとうございます。
質問文にも書いたのですが、こんな感じの事は試してみました。
tableもOVERFLOWもちょっと違う感じです。
ありがとうございます。