[PHP]文字のはみ出しをなくす

aaaaaaという風に文字数が連続した場合やリンクをつけた場合などに、幅の設定をしてるにも関わらず文字がはみ出してしまう現象を回避する方法。

たとえば、

aaaaaaaaaaaaaaaaaaaaaa

となっている時に、スタイルシートでwidth:80px;と指定しても、文字ははみ出してしまいます。
これがIEなら、

.mozi{
width:80px;
word-break:break-all;
}

というようにword-breakを指定すれば自動で改行されるのですが、他のブラウザだとそれがうまくいきません。

そこで、Firefoxなどのブラウザでも、自動で改行するPHPスクリプトを記述します。

$mozi = array(
“aaaaaaaaaaaaaa”,”bbbbbbbbbbbbbbbbb”,”ccc”,”dddddddd”,”eeeee”
);

for($i=0; $i<5; $i++){ $check = 8; $mozisu = strlen($mozi[$i]); if($mozisu>=$check){
$mozi[$i] = wordwrap($mozi[$i], $check, ““, true);
}
}

以上のようにします。

簡単に説明すると、$moziという配列に8文字以上のものがあれば自動改行するようにしています。

$checkは文字を改行する文字数で、それをあとのwordwrapにて改行コード<wbr>を挿入するようにしてます。
strlenは文字数をチェックしておりifで8文字以上じゃなければ改行コードを挿入しないようにしています。

※日本語の場合、文字化けすることがあります。



シェアする

  • このエントリーをはてなブックマークに追加

フォローする