半角英数字記号の連続文字に対し、一定スパンでスペースをいれる

ブログ | 2007/11/22 20:07
1バイトの文字が連続すると改行してくれないので、レイアウト崩壊がしばしば起こる。重い腰を上げて調べた。

これでどうだ。
<?php

$str = 'aaaaaaaabbbbbbbbbbbbbb,&///aaaaaaaaaabbbbb3333333fheawuhfpwahfuhffa;hfeahfawufh;fewahflawjflawjfhafhaiufiusjfdasjdhfljafhdljahsfljshlafjsakfsたこいかうにさんま';

$str = preg_replace_callback("/[a-zA-Z0-9_\(\)\.\/\~\%\:\#\?=&\;\-\+\,]{40,}/i", 'filter', $str);

echo $str;

function filter($match){
 $str = '';
 for($i = 0;$i < strlen($match[0]);$i += 40){
   $str .= substr($match[0],$i,40).' ';
 }
 return $str;
}

?>
kuwa
なんかgmailみたら折り返されてるな。なにか方法があるのかもしれん。
kuwa | 2007/11/23 16:19
kuwa
メモリンク
http://pinotan.blog15.fc2.com/file/word-break.ht...
http://www.res-system.com/item/404

ん、コメントの編集時に改行がなくなってるな。...済み
kuwa | 2007/11/26 14:23
kuwa
PHPにwordwrapなんていう関数があった。
http://zapanet.info/phpdoc/function.wordwrap.htm...
kuwa | 2008/03/27 18:07
kuwa
wordwrapでは、連続文字列は折れないや
kuwa | 2008/04/09 03:29
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close