風林火山

株や競馬や、アバンテ、巨人など、日々の活動や思うことを、東京からお届けします。

全角半角ごちゃまぜの指定文字数で改行

2009年02月20日 14時23分26秒 | PHP
辞める間際になって、発注管理用のシステムをPHPで組むことを要求される。

てか作るのはいいけど、これ誰が管理するんだろ?


備考欄を入力してもらって、全角24文字、半角48文字以上なら
自動的に改行されるようにしたんだけど、
全角23文字+半角1文字だと、
バイト数的には47バイトなので、改行されない。

んで次が全角だと、48バイト目は、その文字の半分しか入っていない状態なので、
当然のように化ける。

mb_substrでやると、24文字というのはできるけど、
半角でも24文字になってしまうし。

んなわけで、対応としてはこんな感じ。


$a="1234~50";
while($b=mb_substr($a,$count,1,"SJIS"))

で1文字ずつ切り出して、全角か半角か判断

※ここでSJISなど、エンコードを指定しないと、
mbなしの実行結果と変わらないみたい。

んで、Whileの中で、strlenを実行して、
バイト数を数えて、それを合計に足してやる。

全角なら、2、半角なら、1がそれぞれ加わる。

んで、0から始めたカウンターが指定文字数に達したら、
改行するなり、配列に加えるなら、Keyを1プラスするとか。

完全な私的メモですんません。


----------------------------

んなわけで、私的まとめサイト、立ち上げました。
 ↓↓↓↓↓↓↓↓↓


PHPスタジオ

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
!!! (Dai)
2009-05-12 00:36:07
まさしくしたいことが書いてありとても参考になりました!
ありがとうございました
返信する

コメントを投稿