fetus Diary

2008/08/01(金)

08月01日のココロ日記(BlogPet)

ココロのひみつ、パケットに打ち明けちゃいました

*このエントリは、ブログペットのココロが書いてます♪

我ながらどうかと思う

alias su='sudo su'

そして、alias が指定してあるサーバと指定していないサーバが混在して悲しい目に遭う

??

[root@tai ~]# service ntpd status
ntpd (pid 31869) is running...
[root@tai ~]# ntpq -p
Name or service not known

んー??????

# もちろん、実際に 31869 で ntpd 動いてる

ぎょーむれんらく

GSSP.JP なドメインが期限切れまでちょうどあと 1 花月 ヶ月な模様。

# お値段は ¥3390/y。先払いなら 9 年延長まで承ります

9年予約

って value-domain 内部で予約されるんだね…(「当サービスをご利用いただいている限り」とか「JPRS 的には 1 年で、サービス側で勝手に更新するだけです(意訳)」って書いてあるし)。

恐ろしい…。

ってことで、2 年くらいまでで。

08月01日のやよいのひみつ日記『かんそう』(Blogpet)

[2008/08/01]ぎょーむれんらくを読んだよ
延長まで承るんだよ

このエントリはブログペットやよいのエントリっぽいものを捏造しました♪

08月01日のココロのひみつ日記『ココロ日記』(Blogpet)

最近の存在ってハイテク!

このエントリはブログペットココロのエントリっぽいものを捏造しました♪

太陽の城

10 戦 0 勝 2 位 3 回。まあ、こんなもんですわ。ハード pf(H) できないんじゃお話にならん。

熱帯戦績

部屋1 位2 位3 位
神秘の湖~Lv28700
時空の塔~Lv31221311
太陽の城~Lv34037
総合291618

選曲TOP20

半月前

  1. チアパラ(73)
  2. にゃんこジャズ(46)
  3. ラヴリーパラダイスチューン(36)
  4. タイムトラベル(33)
  5. そばかす(30)
  6. アフターパーティ(28)
  7. 創聖のアクエリオン(27)
  8. ムードテクノ(27)
  9. 月のワルツ(27)
  10. 浪速っ子ブギ(25)
  11. アンビション(25)
  12. 彗星RAVE(25)
  13. バイキング(23)
  14. ケロッ!とマーチ(22)
  15. ガールズオルタナティブ(20)
  16. CLIMAX JUMP(18)
  17. ティアーズ(18)
  18. ジュエリーロック(17)
  19. スキップ(16)
  20. ポップコーンパーティ(15)

実況パワフルプロ野球15 スペシャルサイト おもしろミニゲーム3連打! | プロ野球人生メーカー

広島出身/ひな
試合数 1268
本塁打 405
打数 4608
打点 984
安打 1631
盗塁 38
打率 .354
33歳 戦力外告知を受けるがコーチとして残留希望
33歳 希望が叶わず、引退

その成績なら打撃コーチになるような気がするけどなぁ、普通。

# よっぽど指導力無いんだろう

2008/08/02(土)

ど~しよ ドシロウト

冬柴国交相は1日午前の閣議後の記者会見で、橋下知事の発言について「素人が大胆なことを言わない方がいい」とクギを刺していた。

橋下知事が概ね素人なのは確かだけど、知事も大臣も(ものすごく簡単な条件をクリアした)「ド素人」達の代表なんだから、選んだド素人に分かるように説明しないとダメだと思うんだけどどうだろう。

でないと、(仮に廃止に賛成が多数派であれば)一見合理的に発言している「ように見える」(自分の意見に近いとそう見えがち)知事に賛同しちゃうと思う、ド素人は。

# 良くも悪くも国民が「総アホ」なら国全体がアホになっていくシステム。

08月02日のやよいのひみつ日記『おぼえてる』(Blogpet)

さいきんおぼえた
知事 柴 大臣 クギ 国民

このエントリはブログペットやよいのエントリっぽいものを捏造しました♪

08月02日のココロのひみつ日記『ココロ日記』(Blogpet)

インターネット物語。パーツを集めること風のごとし

このエントリはブログペットココロのエントリっぽいものを捏造しました♪

発掘

THE IDOM@STER MASTER ARTIST FINALE 発掘。

…AMAZON のデータ見てて思ったんだけどね…

「音楽 > J-POP > アーティスト別 > た行 > た > 高木完」

……えーっと…。名前を混ぜるのはいけないと思います!

# おそらく、「高木順一朗」+「徳丸完」

あくび

宮城県美里町立中埣小学校(児童133人、舘内充校長)で6年生の授業中、男性教頭(56)があくびをした児童に注意した際、「包丁で刺すかもしれないぞ」と発言していたことが2日、分かった。

学校と町教委によると、教頭は7月1日、担任の代役で5時間目の国語を教えた。児童数人があくびをしたのを見て、「授業中にあくびをする者に真剣に教える気持ちになれない。ここに包丁が3本あるとしたら、そのうちの1本で刺すかもしれないぞ」といった趣旨の発言をした。

うっうー! 教頭先生、残りの 2 本何に使うつもりだったんですかっ?!

赤塚不二夫さん、死去

合掌。

mb_strwidth2

mb_strwidth が、文字幅が曖昧なときに間違った数字を返す("☆"とか"…"とかが「幅 1」になる)ので自分用のを書いてみた。

<?php
    function mb_strwidth2($str, $encoding = 'auto') {
        return mb_strwidth2_support::strwidth2($str, $encoding);
    }
    
    class mb_strwidth2_support {
        static public function strwidth2($str, $encoding = 'auto') {
            if($encoding === 'auto') {
                $encoding = mb_internal_encoding();
            }
            if(strtoupper($encoding) !== 'UCS-4BE') {
                return self::strwidth2(mb_convert_encoding($str, 'UCS-4BE', $encoding), 'UCS-4BE');
            }
            $strlen = mb_strlen($str, 'UCS-4BE');
            $result = 0;
            for($i = 0; $i < $strlen; ++$i) {
                $c = mb_substr($str, $i, 1, 'UCS-4BE');
                $result += self::chrwidth($c);
            }
            return $result;
        }
        
        static private function chrwidth($c) {    // $c: UCS-4BE
            static $cache = array();
            if(isset($cache[$c])) {
                return $cache[$c];
            }
            
            $code = (ord(substr($c, 0, 1)) << 24) + (ord(substr($c, 1, 1)) << 16) + (ord(substr($c, 2, 1)) <<  8) + ord(substr($c, 3, 1));
            $result = self::chrwidth_($code);
            if($result < 0) {
//                echo "unknown: $code\n";
                $result = mb_strwidth($c, 'UCS-4BE');
            }
            $cache[$c] = $result;
            return $result;
        }
        
        static private function chrwidth_($code) {
            // 確実に半角とされている方々
            if(self::is_unicode_type_NA($code) || self::is_unicode_type_H($code)){
                return 1;
            }
            
            // 確実に全角とされている方々
            if(self::is_unicode_type_W($code) || self::is_unicode_type_F($code)) {
                return 2;
            }
            
            // 文脈依存の方々
            if(self::is_unicode_type_A($code)) {
                // 本来は東アジアなら 2、そうでなければ 1 を返すべき
                return 2;
            }
            
            // 現れないハズの方々
            if(self::is_unicode_type_N($code)) {
                return -1;
            }
            
            // 知らない文字の方々
            return -1;
        }
        
        static private function is_unicode_type_N($code) {
            return (
                (0x0 <= $code && $code <= 0x1f) || (0x7f <= $code && $code <= 0xa0) || ($code == 0xa9) || 
                ($code == 0xab) || ($code == 0xb5) || ($code == 0xbb) || (0xc0 <= $code && $code <= 0xc5) || 
                (0xc7 <= $code && $code <= 0xcf) || (0xd1 <= $code && $code <= 0xd6) || 
                (0xd9 <= $code && $code <= 0xdd) || (0xe2 <= $code && $code <= 0xe5) || ($code == 0xe7) || 
                ($code == 0xeb) || (0xee <= $code && $code <= 0xef) || ($code == 0xf1) || 
                (0xf4 <= $code && $code <= 0xf6) || ($code == 0xfb) || ($code == 0xfd) || 
                (0xff <= $code && $code <= 0x100) || (0x102 <= $code && $code <= 0x110) || ($code == 0x112) || 
                (0x114 <= $code && $code <= 0x11a) || (0x11c <= $code && $code <= 0x125) || 
                (0x128 <= $code && $code <= 0x12a) || (0x12c <= $code && $code <= 0x130) || 
                (0x134 <= $code && $code <= 0x137) || (0x139 <= $code && $code <= 0x13e) || ($code == 0x143) || 
                (0x145 <= $code && $code <= 0x147) || ($code == 0x14c) || (0x14e <= $code && $code <= 0x151) || 
                (0x154 <= $code && $code <= 0x165) || (0x168 <= $code && $code <= 0x16a) || 
                (0x16c <= $code && $code <= 0x1cd) || ($code == 0x1cf) || ($code == 0x1d1) || ($code == 0x1d3) || 
                ($code == 0x1d5) || ($code == 0x1d7) || ($code == 0x1d9) || ($code == 0x1db) || 
                (0x1dd <= $code && $code <= 0x250) || (0x252 <= $code && $code <= 0x260) || 
                (0x262 <= $code && $code <= 0x2c3) || (0x2c5 <= $code && $code <= 0x2c6) || ($code == 0x2c8) || 
                ($code == 0x2cc) || (0x2ce <= $code && $code <= 0x2cf) || (0x2d1 <= $code && $code <= 0x2d7) || 
                ($code == 0x2dc) || ($code == 0x2de) || (0x2e0 <= $code && $code <= 0x2ff) || 
                (0x370 <= $code && $code <= 0x377) || (0x37a <= $code && $code <= 0x37e) || 
                (0x384 <= $code && $code <= 0x38a) || ($code == 0x38c) || (0x38e <= $code && $code <= 0x390) || 
                (0x3aa <= $code && $code <= 0x3b0) || ($code == 0x3c2) || (0x3ca <= $code && $code <= 0x400) || 
                (0x402 <= $code && $code <= 0x40f) || ($code == 0x450) || (0x452 <= $code && $code <= 0x523) || 
                (0x531 <= $code && $code <= 0x556) || (0x559 <= $code && $code <= 0x55f) || 
                (0x561 <= $code && $code <= 0x587) || (0x589 <= $code && $code <= 0x58a) || 
                (0x591 <= $code && $code <= 0x5c7) || (0x5d0 <= $code && $code <= 0x5ea) || 
                (0x5f0 <= $code && $code <= 0x5f4) || (0x600 <= $code && $code <= 0x603) || 
                (0x606 <= $code && $code <= 0x61b) || (0x61e <= $code && $code <= 0x61f) || 
                (0x621 <= $code && $code <= 0x65e) || (0x660 <= $code && $code <= 0x70d) || 
                (0x70f <= $code && $code <= 0x74a) || (0x74d <= $code && $code <= 0x7b1) || 
                (0x7c0 <= $code && $code <= 0x7fa) || (0x901 <= $code && $code <= 0x939) || 
                (0x93c <= $code && $code <= 0x94d) || (0x950 <= $code && $code <= 0x954) || 
                (0x958 <= $code && $code <= 0x972) || (0x97b <= $code && $code <= 0x97f) || 
                (0x981 <= $code && $code <= 0x983) || (0x985 <= $code && $code <= 0x98c) || 
                (0x98f <= $code && $code <= 0x990) || (0x993 <= $code && $code <= 0x9a8) || 
                (0x9aa <= $code && $code <= 0x9b0) || ($code == 0x9b2) || (0x9b6 <= $code && $code <= 0x9b9) || 
                (0x9bc <= $code && $code <= 0x9c4) || (0x9c7 <= $code && $code <= 0x9c8) || 
                (0x9cb <= $code && $code <= 0x9ce) || ($code == 0x9d7) || (0x9dc <= $code && $code <= 0x9dd) || 
                (0x9df <= $code && $code <= 0x9e3) || (0x9e6 <= $code && $code <= 0x9fa) || 
                (0xa01 <= $code && $code <= 0xa03) || (0xa05 <= $code && $code <= 0xa0a) || 
                (0xa0f <= $code && $code <= 0xa10) || (0xa13 <= $code && $code <= 0xa28) || 
                (0xa2a <= $code && $code <= 0xa30) || (0xa32 <= $code && $code <= 0xa33) || 
                (0xa35 <= $code && $code <= 0xa36) || (0xa38 <= $code && $code <= 0xa39) || ($code == 0xa3c) || 
                (0xa3e <= $code && $code <= 0xa42) || (0xa47 <= $code && $code <= 0xa48) || 
                (0xa4b <= $code && $code <= 0xa4d) || ($code == 0xa51) || (0xa59 <= $code && $code <= 0xa5c) || 
                ($code == 0xa5e) || (0xa66 <= $code && $code <= 0xa75) || (0xa81 <= $code && $code <= 0xa83) || 
                (0xa85 <= $code && $code <= 0xa8d) || (0xa8f <= $code && $code <= 0xa91) || 
                (0xa93 <= $code && $code <= 0xaa8) || (0xaaa <= $code && $code <= 0xab0) || 
                (0xab2 <= $code && $code <= 0xab3) || (0xab5 <= $code && $code <= 0xab9) || 
                (0xabc <= $code && $code <= 0xac5) || (0xac7 <= $code && $code <= 0xac9) || 
                (0xacb <= $code && $code <= 0xacd) || ($code == 0xad0) || (0xae0 <= $code && $code <= 0xae3) || 
                (0xae6 <= $code && $code <= 0xaef) || ($code == 0xaf1) || (0xb01 <= $code && $code <= 0xb03) || 
                (0xb05 <= $code && $code <= 0xb0c) || (0xb0f <= $code && $code <= 0xb10) || 
                (0xb13 <= $code && $code <= 0xb28) || (0xb2a <= $code && $code <= 0xb30) || 
                (0xb32 <= $code && $code <= 0xb33) || (0xb35 <= $code && $code <= 0xb39) || 
                (0xb3c <= $code && $code <= 0xb44) || (0xb47 <= $code && $code <= 0xb48) || 
                (0xb4b <= $code && $code <= 0xb4d) || (0xb56 <= $code && $code <= 0xb57) || 
                (0xb5c <= $code && $code <= 0xb5d) || (0xb5f <= $code && $code <= 0xb63) || 
                (0xb66 <= $code && $code <= 0xb71) || (0xb82 <= $code && $code <= 0xb83) || 
                (0xb85 <= $code && $code <= 0xb8a) || (0xb8e <= $code && $code <= 0xb90) || 
                (0xb92 <= $code && $code <= 0xb95) || (0xb99 <= $code && $code <= 0xb9a) || ($code == 0xb9c) || 
                (0xb9e <= $code && $code <= 0xb9f) || (0xba3 <= $code && $code <= 0xba4) || 
                (0xba8 <= $code && $code <= 0xbaa) || (0xbae <= $code && $code <= 0xbb9) || 
                (0xbbe <= $code && $code <= 0xbc2) || (0xbc6 <= $code && $code <= 0xbc8) || 
                (0xbca <= $code && $code <= 0xbcd) || ($code == 0xbd0) || ($code == 0xbd7) || 
                (0xbe6 <= $code && $code <= 0xbfa) || (0xc01 <= $code && $code <= 0xc03) || 
                (0xc05 <= $code && $code <= 0xc0c) || (0xc0e <= $code && $code <= 0xc10) || 
                (0xc12 <= $code && $code <= 0xc28) || (0xc2a <= $code && $code <= 0xc33) || 
                (0xc35 <= $code && $code <= 0xc39) || (0xc3d <= $code && $code <= 0xc44) || 
                (0xc46 <= $code && $code <= 0xc48) || (0xc4a <= $code && $code <= 0xc4d) || 
                (0xc55 <= $code && $code <= 0xc56) || (0xc58 <= $code && $code <= 0xc59) || 
                (0xc60 <= $code && $code <= 0xc63) || (0xc66 <= $code && $code <= 0xc6f) || 
                (0xc78 <= $code && $code <= 0xc7f) || (0xc82 <= $code && $code <= 0xc83) || 
                (0xc85 <= $code && $code <= 0xc8c) || (0xc8e <= $code && $code <= 0xc90) || 
                (0xc92 <= $code && $code <= 0xca8) || (0xcaa <= $code && $code <= 0xcb3) || 
                (0xcb5 <= $code && $code <= 0xcb9) || (0xcbc <= $code && $code <= 0xcc4) || 
                (0xcc6 <= $code && $code <= 0xcc8) || (0xcca <= $code && $code <= 0xccd) || 
                (0xcd5 <= $code && $code <= 0xcd6) || ($code == 0xcde) || (0xce0 <= $code && $code <= 0xce3) || 
                (0xce6 <= $code && $code <= 0xcef) || (0xcf1 <= $code && $code <= 0xcf2) || 
                (0xd02 <= $code && $code <= 0xd03) || (0xd05 <= $code && $code <= 0xd0c) || 
                (0xd0e <= $code && $code <= 0xd10) || (0xd12 <= $code && $code <= 0xd28) || 
                (0xd2a <= $code && $code <= 0xd39) || (0xd3d <= $code && $code <= 0xd44) || 
                (0xd46 <= $code && $code <= 0xd48) || (0xd4a <= $code && $code <= 0xd4d) || ($code == 0xd57) || 
                (0xd60 <= $code && $code <= 0xd63) || (0xd66 <= $code && $code <= 0xd75) || 
                (0xd79 <= $code && $code <= 0xd7f) || (0xd82 <= $code && $code <= 0xd83) || 
                (0xd85 <= $code && $code <= 0xd96) || (0xd9a <= $code && $code <= 0xdb1) || 
                (0xdb3 <= $code && $code <= 0xdbb) || ($code == 0xdbd) || (0xdc0 <= $code && $code <= 0xdc6) || 
                ($code == 0xdca) || (0xdcf <= $code && $code <= 0xdd4) || ($code == 0xdd6) || 
                (0xdd8 <= $code && $code <= 0xddf) || (0xdf2 <= $code && $code <= 0xdf4) || 
                (0xe01 <= $code && $code <= 0xe3a) || (0xe3f <= $code && $code <= 0xe5b) || 
                (0xe81 <= $code && $code <= 0xe82) || ($code == 0xe84) || (0xe87 <= $code && $code <= 0xe88) || 
                ($code == 0xe8a) || ($code == 0xe8d) || (0xe94 <= $code && $code <= 0xe97) || 
                (0xe99 <= $code && $code <= 0xe9f) || (0xea1 <= $code && $code <= 0xea3) || ($code == 0xea5) || 
                ($code == 0xea7) || (0xeaa <= $code && $code <= 0xeab) || (0xead <= $code && $code <= 0xeb9) || 
                (0xebb <= $code && $code <= 0xebd) || (0xec0 <= $code && $code <= 0xec4) || ($code == 0xec6) || 
                (0xec8 <= $code && $code <= 0xecd) || (0xed0 <= $code && $code <= 0xed9) || 
                (0xedc <= $code && $code <= 0xedd) || (0xf00 <= $code && $code <= 0xf47) || 
                (0xf49 <= $code && $code <= 0xf6c) || (0xf71 <= $code && $code <= 0xf8b) || 
                (0xf90 <= $code && $code <= 0xf97) || (0xf99 <= $code && $code <= 0xfbc) || 
                (0xfbe <= $code && $code <= 0xfcc) || (0xfce <= $code && $code <= 0xfd4) || 
                (0x1000 <= $code && $code <= 0x1099) || (0x109e <= $code && $code <= 0x10c5) || 
                (0x10d0 <= $code && $code <= 0x10fc) || (0x1160 <= $code && $code <= 0x11a2) || 
                (0x11a8 <= $code && $code <= 0x11f9) || (0x1200 <= $code && $code <= 0x1248) || 
                (0x124a <= $code && $code <= 0x124d) || (0x1250 <= $code && $code <= 0x1256) || 
                ($code == 0x1258) || (0x125a <= $code && $code <= 0x125d) || 
                (0x1260 <= $code && $code <= 0x1288) || (0x128a <= $code && $code <= 0x128d) || 
                (0x1290 <= $code && $code <= 0x12b0) || (0x12b2 <= $code && $code <= 0x12b5) || 
                (0x12b8 <= $code && $code <= 0x12be) || ($code == 0x12c0) || 
                (0x12c2 <= $code && $code <= 0x12c5) || (0x12c8 <= $code && $code <= 0x12d6) || 
                (0x12d8 <= $code && $code <= 0x1310) || (0x1312 <= $code && $code <= 0x1315) || 
                (0x1318 <= $code && $code <= 0x135a) || (0x135f <= $code && $code <= 0x137c) || 
                (0x1380 <= $code && $code <= 0x1399) || (0x13a0 <= $code && $code <= 0x13f4) || 
                (0x1401 <= $code && $code <= 0x1676) || (0x1680 <= $code && $code <= 0x169c) || 
                (0x16a0 <= $code && $code <= 0x16f0) || (0x1700 <= $code && $code <= 0x170c) || 
                (0x170e <= $code && $code <= 0x1714) || (0x1720 <= $code && $code <= 0x1736) || 
                (0x1740 <= $code && $code <= 0x1753) || (0x1760 <= $code && $code <= 0x176c) || 
                (0x176e <= $code && $code <= 0x1770) || (0x1772 <= $code && $code <= 0x1773) || 
                (0x1780 <= $code && $code <= 0x17dd) || (0x17e0 <= $code && $code <= 0x17e9) || 
                (0x17f0 <= $code && $code <= 0x17f9) || (0x1800 <= $code && $code <= 0x180e) || 
                (0x1810 <= $code && $code <= 0x1819) || (0x1820 <= $code && $code <= 0x1877) || 
                (0x1880 <= $code && $code <= 0x18aa) || (0x1900 <= $code && $code <= 0x191c) || 
                (0x1920 <= $code && $code <= 0x192b) || (0x1930 <= $code && $code <= 0x193b) || 
                ($code == 0x1940) || (0x1944 <= $code && $code <= 0x196d) || 
                (0x1970 <= $code && $code <= 0x1974) || (0x1980 <= $code && $code <= 0x19a9) || 
                (0x19b0 <= $code && $code <= 0x19c9) || (0x19d0 <= $code && $code <= 0x19d9) || 
                (0x19de <= $code && $code <= 0x1a1b) || (0x1a1e <= $code && $code <= 0x1a1f) || 
                (0x1b00 <= $code && $code <= 0x1b4b) || (0x1b50 <= $code && $code <= 0x1b7c) || 
                (0x1b80 <= $code && $code <= 0x1baa) || (0x1bae <= $code && $code <= 0x1bb9) || 
                (0x1c00 <= $code && $code <= 0x1c37) || (0x1c3b <= $code && $code <= 0x1c49) || 
                (0x1c4d <= $code && $code <= 0x1c7f) || (0x1d00 <= $code && $code <= 0x1de6) || 
                (0x1dfe <= $code && $code <= 0x1f15) || (0x1f18 <= $code && $code <= 0x1f1d) || 
                (0x1f20 <= $code && $code <= 0x1f45) || (0x1f48 <= $code && $code <= 0x1f4d) || 
                (0x1f50 <= $code && $code <= 0x1f57) || ($code == 0x1f59) || ($code == 0x1f5b) || 
                ($code == 0x1f5d) || (0x1f5f <= $code && $code <= 0x1f7d) || 
                (0x1f80 <= $code && $code <= 0x1fb4) || (0x1fb6 <= $code && $code <= 0x1fc4) || 
                (0x1fc6 <= $code && $code <= 0x1fd3) || (0x1fd6 <= $code && $code <= 0x1fdb) || 
                (0x1fdd <= $code && $code <= 0x1fef) || (0x1ff2 <= $code && $code <= 0x1ff4) || 
                (0x1ff6 <= $code && $code <= 0x1ffe) || (0x2000 <= $code && $code <= 0x200f) || 
                (0x2011 <= $code && $code <= 0x2012) || ($code == 0x2017) || 
                (0x201a <= $code && $code <= 0x201b) || (0x201e <= $code && $code <= 0x201f) || 
                ($code == 0x2023) || (0x2028 <= $code && $code <= 0x202f) || ($code == 0x2031) || 
                ($code == 0x2034) || (0x2036 <= $code && $code <= 0x203a) || 
                (0x203c <= $code && $code <= 0x203d) || (0x203f <= $code && $code <= 0x2064) || 
                (0x206a <= $code && $code <= 0x2071) || (0x2075 <= $code && $code <= 0x207e) || 
                ($code == 0x2080) || (0x2085 <= $code && $code <= 0x208e) || 
                (0x2090 <= $code && $code <= 0x2094) || (0x20a0 <= $code && $code <= 0x20a8) || 
                (0x20aa <= $code && $code <= 0x20ab) || (0x20ad <= $code && $code <= 0x20b5) || 
                (0x20d0 <= $code && $code <= 0x20f0) || (0x2100 <= $code && $code <= 0x2102) || 
                ($code == 0x2104) || (0x2106 <= $code && $code <= 0x2108) || 
                (0x210a <= $code && $code <= 0x2112) || (0x2114 <= $code && $code <= 0x2115) || 
                (0x2117 <= $code && $code <= 0x2120) || (0x2123 <= $code && $code <= 0x2125) || 
                (0x2127 <= $code && $code <= 0x212a) || (0x212c <= $code && $code <= 0x214f) || 
                (0x2155 <= $code && $code <= 0x215a) || ($code == 0x215f) || 
                (0x216c <= $code && $code <= 0x216f) || (0x217a <= $code && $code <= 0x2188) || 
                (0x219a <= $code && $code <= 0x21b7) || (0x21ba <= $code && $code <= 0x21d1) || 
                ($code == 0x21d3) || (0x21d5 <= $code && $code <= 0x21e6) || 
                (0x21e8 <= $code && $code <= 0x21ff) || ($code == 0x2201) || 
                (0x2204 <= $code && $code <= 0x2206) || (0x2209 <= $code && $code <= 0x220a) || 
                (0x220c <= $code && $code <= 0x220e) || ($code == 0x2210) || 
                (0x2212 <= $code && $code <= 0x2214) || (0x2216 <= $code && $code <= 0x2219) || 
                (0x221b <= $code && $code <= 0x221c) || (0x2221 <= $code && $code <= 0x2222) || 
                ($code == 0x2224) || ($code == 0x2226) || ($code == 0x222d) || 
                (0x222f <= $code && $code <= 0x2233) || (0x2238 <= $code && $code <= 0x223b) || 
                (0x223e <= $code && $code <= 0x2247) || (0x2249 <= $code && $code <= 0x224b) || 
                (0x224d <= $code && $code <= 0x2251) || (0x2253 <= $code && $code <= 0x225f) || 
                (0x2262 <= $code && $code <= 0x2263) || (0x2268 <= $code && $code <= 0x2269) || 
                (0x226c <= $code && $code <= 0x226d) || (0x2270 <= $code && $code <= 0x2281) || 
                (0x2284 <= $code && $code <= 0x2285) || (0x2288 <= $code && $code <= 0x2294) || 
                (0x2296 <= $code && $code <= 0x2298) || (0x229a <= $code && $code <= 0x22a4) || 
                (0x22a6 <= $code && $code <= 0x22be) || (0x22c0 <= $code && $code <= 0x2311) || 
                (0x2313 <= $code && $code <= 0x2328) || (0x232b <= $code && $code <= 0x23e7) || 
                (0x2400 <= $code && $code <= 0x2426) || (0x2440 <= $code && $code <= 0x244a) || 
                ($code == 0x24ea) || (0x254c <= $code && $code <= 0x254f) || 
                (0x2574 <= $code && $code <= 0x257f) || (0x2590 <= $code && $code <= 0x2591) || 
                (0x2596 <= $code && $code <= 0x259f) || ($code == 0x25a2) || 
                (0x25aa <= $code && $code <= 0x25b1) || (0x25b4 <= $code && $code <= 0x25b5) || 
                (0x25b8 <= $code && $code <= 0x25bb) || (0x25be <= $code && $code <= 0x25bf) || 
                (0x25c2 <= $code && $code <= 0x25c5) || (0x25c9 <= $code && $code <= 0x25ca) || 
                (0x25cc <= $code && $code <= 0x25cd) || (0x25d2 <= $code && $code <= 0x25e1) || 
                (0x25e6 <= $code && $code <= 0x25ee) || (0x25f0 <= $code && $code <= 0x2604) || 
                (0x2607 <= $code && $code <= 0x2608) || (0x260a <= $code && $code <= 0x260d) || 
                (0x2610 <= $code && $code <= 0x2613) || (0x2616 <= $code && $code <= 0x261b) || 
                ($code == 0x261d) || (0x261f <= $code && $code <= 0x263f) || ($code == 0x2641) || 
                (0x2643 <= $code && $code <= 0x265f) || ($code == 0x2662) || ($code == 0x2666) || 
                ($code == 0x266b) || ($code == 0x266e) || (0x2670 <= $code && $code <= 0x269d) || 
                (0x26a0 <= $code && $code <= 0x26bc) || (0x26c0 <= $code && $code <= 0x26c3) || 
                (0x2701 <= $code && $code <= 0x2704) || (0x2706 <= $code && $code <= 0x2709) || 
                (0x270c <= $code && $code <= 0x2727) || (0x2729 <= $code && $code <= 0x273c) || 
                (0x273e <= $code && $code <= 0x274b) || ($code == 0x274d) || 
                (0x274f <= $code && $code <= 0x2752) || ($code == 0x2756) || 
                (0x2758 <= $code && $code <= 0x275e) || (0x2761 <= $code && $code <= 0x2775) || 
                (0x2780 <= $code && $code <= 0x2794) || (0x2798 <= $code && $code <= 0x27af) || 
                (0x27b1 <= $code && $code <= 0x27be) || (0x27c0 <= $code && $code <= 0x27ca) || 
                ($code == 0x27cc) || (0x27d0 <= $code && $code <= 0x27e5) || 
                (0x27ee <= $code && $code <= 0x2984) || (0x2987 <= $code && $code <= 0x2b4c) || 
                (0x2b50 <= $code && $code <= 0x2b54) || (0x2c00 <= $code && $code <= 0x2c2e) || 
                (0x2c30 <= $code && $code <= 0x2c5e) || (0x2c60 <= $code && $code <= 0x2c6f) || 
                (0x2c71 <= $code && $code <= 0x2c7d) || (0x2c80 <= $code && $code <= 0x2cea) || 
                (0x2cf9 <= $code && $code <= 0x2d25) || (0x2d30 <= $code && $code <= 0x2d65) || 
                ($code == 0x2d6f) || (0x2d80 <= $code && $code <= 0x2d96) || 
                (0x2da0 <= $code && $code <= 0x2da6) || (0x2da8 <= $code && $code <= 0x2dae) || 
                (0x2db0 <= $code && $code <= 0x2db6) || (0x2db8 <= $code && $code <= 0x2dbe) || 
                (0x2dc0 <= $code && $code <= 0x2dc6) || (0x2dc8 <= $code && $code <= 0x2dce) || 
                (0x2dd0 <= $code && $code <= 0x2dd6) || (0x2dd8 <= $code && $code <= 0x2dde) || 
                (0x2de0 <= $code && $code <= 0x2e30) || ($code == 0x303f) || 
                (0x4dc0 <= $code && $code <= 0x4dff) || (0xa500 <= $code && $code <= 0xa62b) || 
                (0xa640 <= $code && $code <= 0xa65f) || (0xa662 <= $code && $code <= 0xa673) || 
                (0xa67c <= $code && $code <= 0xa697) || (0xa700 <= $code && $code <= 0xa78c) || 
                (0xa7fb <= $code && $code <= 0xa82b) || (0xa840 <= $code && $code <= 0xa877) || 
                (0xa880 <= $code && $code <= 0xa8c4) || (0xa8ce <= $code && $code <= 0xa8d9) || 
                (0xa900 <= $code && $code <= 0xa953) || ($code == 0xa95f) || 
                (0xaa00 <= $code && $code <= 0xaa36) || (0xaa40 <= $code && $code <= 0xaa4d) || 
                (0xaa50 <= $code && $code <= 0xaa59) || (0xaa5c <= $code && $code <= 0xaa5f) || 
                (0xd800 <= $code && $code <= 0xdfff) || (0xfb00 <= $code && $code <= 0xfb06) || 
                (0xfb13 <= $code && $code <= 0xfb17) || (0xfb1d <= $code && $code <= 0xfb36) || 
                (0xfb38 <= $code && $code <= 0xfb3c) || ($code == 0xfb3e) || 
                (0xfb40 <= $code && $code <= 0xfb41) || (0xfb43 <= $code && $code <= 0xfb44) || 
                (0xfb46 <= $code && $code <= 0xfbb1) || (0xfbd3 <= $code && $code <= 0xfd3f) || 
                (0xfd50 <= $code && $code <= 0xfd8f) || (0xfd92 <= $code && $code <= 0xfdc7) || 
                (0xfdf0 <= $code && $code <= 0xfdfd) || (0xfe20 <= $code && $code <= 0xfe26) || 
                (0xfe70 <= $code && $code <= 0xfe74) || (0xfe76 <= $code && $code <= 0xfefc) || 
                ($code == 0xfeff) || (0xfff9 <= $code && $code <= 0xfffc) || 
                (0x10000 <= $code && $code <= 0x1000b) || (0x1000d <= $code && $code <= 0x10026) || 
                (0x10028 <= $code && $code <= 0x1003a) || (0x1003c <= $code && $code <= 0x1003d) || 
                (0x1003f <= $code && $code <= 0x1004d) || (0x10050 <= $code && $code <= 0x1005d) || 
                (0x10080 <= $code && $code <= 0x100fa) || (0x10100 <= $code && $code <= 0x10102) || 
                (0x10107 <= $code && $code <= 0x10133) || (0x10137 <= $code && $code <= 0x1018a) || 
                (0x10190 <= $code && $code <= 0x1019b) || (0x101d0 <= $code && $code <= 0x101fd) || 
                (0x10280 <= $code && $code <= 0x1029c) || (0x102a0 <= $code && $code <= 0x102d0) || 
                (0x10300 <= $code && $code <= 0x1031e) || (0x10320 <= $code && $code <= 0x10323) || 
                (0x10330 <= $code && $code <= 0x1034a) || (0x10380 <= $code && $code <= 0x1039d) || 
                (0x1039f <= $code && $code <= 0x103c3) || (0x103c8 <= $code && $code <= 0x103d5) || 
                (0x10400 <= $code && $code <= 0x1049d) || (0x104a0 <= $code && $code <= 0x104a9) || 
                (0x10800 <= $code && $code <= 0x10805) || ($code == 0x10808) || 
                (0x1080a <= $code && $code <= 0x10835) || (0x10837 <= $code && $code <= 0x10838) || 
                ($code == 0x1083c) || ($code == 0x1083f) || (0x10900 <= $code && $code <= 0x10919) || 
                (0x1091f <= $code && $code <= 0x10939) || ($code == 0x1093f) || 
                (0x10a00 <= $code && $code <= 0x10a03) || (0x10a05 <= $code && $code <= 0x10a06) || 
                (0x10a0c <= $code && $code <= 0x10a13) || (0x10a15 <= $code && $code <= 0x10a17) || 
                (0x10a19 <= $code && $code <= 0x10a33) || (0x10a38 <= $code && $code <= 0x10a3a) || 
                (0x10a3f <= $code && $code <= 0x10a47) || (0x10a50 <= $code && $code <= 0x10a58) || 
                (0x12000 <= $code && $code <= 0x1236e) || (0x12400 <= $code && $code <= 0x12462) || 
                (0x12470 <= $code && $code <= 0x12473) || (0x1d000 <= $code && $code <= 0x1d0f5) || 
                (0x1d100 <= $code && $code <= 0x1d126) || (0x1d129 <= $code && $code <= 0x1d1dd) || 
                (0x1d200 <= $code && $code <= 0x1d245) || (0x1d300 <= $code && $code <= 0x1d356) || 
                (0x1d360 <= $code && $code <= 0x1d371) || (0x1d400 <= $code && $code <= 0x1d454) || 
                (0x1d456 <= $code && $code <= 0x1d49c) || (0x1d49e <= $code && $code <= 0x1d49f) || 
                ($code == 0x1d4a2) || (0x1d4a5 <= $code && $code <= 0x1d4a6) || 
                (0x1d4a9 <= $code && $code <= 0x1d4ac) || (0x1d4ae <= $code && $code <= 0x1d4b9) || 
                ($code == 0x1d4bb) || (0x1d4bd <= $code && $code <= 0x1d4c3) || 
                (0x1d4c5 <= $code && $code <= 0x1d505) || (0x1d507 <= $code && $code <= 0x1d50a) || 
                (0x1d50d <= $code && $code <= 0x1d514) || (0x1d516 <= $code && $code <= 0x1d51c) || 
                (0x1d51e <= $code && $code <= 0x1d539) || (0x1d53b <= $code && $code <= 0x1d53e) || 
                (0x1d540 <= $code && $code <= 0x1d544) || ($code == 0x1d546) || 
                (0x1d54a <= $code && $code <= 0x1d550) || (0x1d552 <= $code && $code <= 0x1d6a5) || 
                (0x1d6a8 <= $code && $code <= 0x1d7cb) || (0x1d7ce <= $code && $code <= 0x1d7ff) || 
                (0x1f000 <= $code && $code <= 0x1f02b) || (0x1f030 <= $code && $code <= 0x1f093) || 
                ($code == 0xe0001) || (0xe0020 <= $code && $code <= 0xe007f)
            );
        }
        
        static private function is_unicode_type_NA($code) {
            return (
                (0x20 <= $code && $code <= 0x7e) || (0xa2 <= $code && $code <= 0xa3) || 
                (0xa5 <= $code && $code <= 0xa6) || ($code == 0xac) || ($code == 0xaf) || 
                (0x27e6 <= $code && $code <= 0x27ed) || (0x2985 <= $code && $code <= 0x2986)
            );
        }
        
        static private function is_unicode_type_A($code) {
            return (
                ($code == 0xa1) || ($code == 0xa4) || (0xa7 <= $code && $code <= 0xa8) || ($code == 0xaa) || 
                (0xad <= $code && $code <= 0xae) || (0xb0 <= $code && $code <= 0xb4) || 
                (0xb6 <= $code && $code <= 0xba) || (0xbc <= $code && $code <= 0xbf) || ($code == 0xc6) || 
                ($code == 0xd0) || (0xd7 <= $code && $code <= 0xd8) || (0xde <= $code && $code <= 0xe1) || 
                ($code == 0xe6) || (0xe8 <= $code && $code <= 0xea) || (0xec <= $code && $code <= 0xed) || 
                ($code == 0xf0) || (0xf2 <= $code && $code <= 0xf3) || (0xf7 <= $code && $code <= 0xfa) || 
                ($code == 0xfc) || ($code == 0xfe) || ($code == 0x101) || ($code == 0x111) || ($code == 0x113) || 
                ($code == 0x11b) || (0x126 <= $code && $code <= 0x127) || ($code == 0x12b) || 
                (0x131 <= $code && $code <= 0x133) || ($code == 0x138) || (0x13f <= $code && $code <= 0x142) || 
                ($code == 0x144) || (0x148 <= $code && $code <= 0x14b) || ($code == 0x14d) || 
                (0x152 <= $code && $code <= 0x153) || (0x166 <= $code && $code <= 0x167) || ($code == 0x16b) || 
                ($code == 0x1ce) || ($code == 0x1d0) || ($code == 0x1d2) || ($code == 0x1d4) || ($code == 0x1d6) || 
                ($code == 0x1d8) || ($code == 0x1da) || ($code == 0x1dc) || ($code == 0x251) || ($code == 0x261) || 
                ($code == 0x2c4) || ($code == 0x2c7) || (0x2c9 <= $code && $code <= 0x2cb) || ($code == 0x2cd) || 
                ($code == 0x2d0) || (0x2d8 <= $code && $code <= 0x2db) || ($code == 0x2dd) || ($code == 0x2df) || 
                (0x300 <= $code && $code <= 0x36f) || (0x391 <= $code && $code <= 0x3a1) || 
                (0x3a3 <= $code && $code <= 0x3a9) || (0x3b1 <= $code && $code <= 0x3c1) || 
                (0x3c3 <= $code && $code <= 0x3c9) || ($code == 0x401) || (0x410 <= $code && $code <= 0x44f) || 
                ($code == 0x451) || ($code == 0x2010) || (0x2013 <= $code && $code <= 0x2016) || 
                (0x2018 <= $code && $code <= 0x2019) || (0x201c <= $code && $code <= 0x201d) || 
                (0x2020 <= $code && $code <= 0x2022) || (0x2024 <= $code && $code <= 0x2027) || 
                ($code == 0x2030) || (0x2032 <= $code && $code <= 0x2033) || ($code == 0x2035) || 
                ($code == 0x203b) || ($code == 0x203e) || ($code == 0x2074) || ($code == 0x207f) || 
                (0x2081 <= $code && $code <= 0x2084) || ($code == 0x20ac) || ($code == 0x2103) || 
                ($code == 0x2105) || ($code == 0x2109) || ($code == 0x2113) || ($code == 0x2116) || 
                (0x2121 <= $code && $code <= 0x2122) || ($code == 0x2126) || ($code == 0x212b) || 
                (0x2153 <= $code && $code <= 0x2154) || (0x215b <= $code && $code <= 0x215e) || 
                (0x2160 <= $code && $code <= 0x216b) || (0x2170 <= $code && $code <= 0x2179) || 
                (0x2190 <= $code && $code <= 0x2199) || (0x21b8 <= $code && $code <= 0x21b9) || 
                ($code == 0x21d2) || ($code == 0x21d4) || ($code == 0x21e7) || ($code == 0x2200) || 
                (0x2202 <= $code && $code <= 0x2203) || (0x2207 <= $code && $code <= 0x2208) || 
                ($code == 0x220b) || ($code == 0x220f) || ($code == 0x2211) || ($code == 0x2215) || 
                ($code == 0x221a) || (0x221d <= $code && $code <= 0x2220) || ($code == 0x2223) || 
                ($code == 0x2225) || (0x2227 <= $code && $code <= 0x222c) || ($code == 0x222e) || 
                (0x2234 <= $code && $code <= 0x2237) || (0x223c <= $code && $code <= 0x223d) || 
                ($code == 0x2248) || ($code == 0x224c) || ($code == 0x2252) || 
                (0x2260 <= $code && $code <= 0x2261) || (0x2264 <= $code && $code <= 0x2267) || 
                (0x226a <= $code && $code <= 0x226b) || (0x226e <= $code && $code <= 0x226f) || 
                (0x2282 <= $code && $code <= 0x2283) || (0x2286 <= $code && $code <= 0x2287) || 
                ($code == 0x2295) || ($code == 0x2299) || ($code == 0x22a5) || ($code == 0x22bf) || 
                ($code == 0x2312) || (0x2460 <= $code && $code <= 0x24e9) || 
                (0x24eb <= $code && $code <= 0x254b) || (0x2550 <= $code && $code <= 0x2573) || 
                (0x2580 <= $code && $code <= 0x258f) || (0x2592 <= $code && $code <= 0x2595) || 
                (0x25a0 <= $code && $code <= 0x25a1) || (0x25a3 <= $code && $code <= 0x25a9) || 
                (0x25b2 <= $code && $code <= 0x25b3) || (0x25b6 <= $code && $code <= 0x25b7) || 
                (0x25bc <= $code && $code <= 0x25bd) || (0x25c0 <= $code && $code <= 0x25c1) || 
                (0x25c6 <= $code && $code <= 0x25c8) || ($code == 0x25cb) || 
                (0x25ce <= $code && $code <= 0x25d1) || (0x25e2 <= $code && $code <= 0x25e5) || 
                ($code == 0x25ef) || (0x2605 <= $code && $code <= 0x2606) || ($code == 0x2609) || 
                (0x260e <= $code && $code <= 0x260f) || (0x2614 <= $code && $code <= 0x2615) || 
                ($code == 0x261c) || ($code == 0x261e) || ($code == 0x2640) || ($code == 0x2642) || 
                (0x2660 <= $code && $code <= 0x2661) || (0x2663 <= $code && $code <= 0x2665) || 
                (0x2667 <= $code && $code <= 0x266a) || (0x266c <= $code && $code <= 0x266d) || 
                ($code == 0x266f) || ($code == 0x273d) || (0x2776 <= $code && $code <= 0x277f) || 
                (0xe000 <= $code && $code <= 0xf8ff) || (0xfe00 <= $code && $code <= 0xfe0f) || 
                ($code == 0xfffd) || (0xe0100 <= $code && $code <= 0xe01ef) || 
                (0xf0000 <= $code && $code <= 0xffffd) || (0x100000 <= $code && $code <= 0x10fffd)
            );
        }
        
        static private function is_unicode_type_W($code) {
            return (
                (0x1100 <= $code && $code <= 0x1159) || ($code == 0x115f) || 
                (0x2329 <= $code && $code <= 0x232a) || (0x2e80 <= $code && $code <= 0x2e99) || 
                (0x2e9b <= $code && $code <= 0x2ef3) || (0x2f00 <= $code && $code <= 0x2fd5) || 
                (0x2ff0 <= $code && $code <= 0x2ffb) || (0x3001 <= $code && $code <= 0x303e) || 
                (0x3041 <= $code && $code <= 0x3096) || (0x3099 <= $code && $code <= 0x30ff) || 
                (0x3105 <= $code && $code <= 0x312d) || (0x3131 <= $code && $code <= 0x318e) || 
                (0x3190 <= $code && $code <= 0x31b7) || (0x31c0 <= $code && $code <= 0x31e3) || 
                (0x31f0 <= $code && $code <= 0x321e) || (0x3220 <= $code && $code <= 0x3243) || 
                (0x3250 <= $code && $code <= 0x32fe) || (0x3300 <= $code && $code <= 0x4db5) || 
                (0x4e00 <= $code && $code <= 0x9fc3) || (0xa000 <= $code && $code <= 0xa48c) || 
                (0xa490 <= $code && $code <= 0xa4c6) || (0xac00 <= $code && $code <= 0xd7a3) || 
                (0xf900 <= $code && $code <= 0xfa2d) || (0xfa30 <= $code && $code <= 0xfa6a) || 
                (0xfa70 <= $code && $code <= 0xfad9) || (0xfe10 <= $code && $code <= 0xfe19) || 
                (0xfe30 <= $code && $code <= 0xfe52) || (0xfe54 <= $code && $code <= 0xfe66) || 
                (0xfe68 <= $code && $code <= 0xfe6b) || (0x20000 <= $code && $code <= 0x2fffd) || 
                (0x30000 <= $code && $code <= 0x3fffd)
            );
        }
        
        static private function is_unicode_type_H($code) {
            return (
                ($code == 0x20a9) || (0xff61 <= $code && $code <= 0xffbe) || 
                (0xffc2 <= $code && $code <= 0xffc7) || (0xffca <= $code && $code <= 0xffcf) || 
                (0xffd2 <= $code && $code <= 0xffd7) || (0xffda <= $code && $code <= 0xffdc) || 
                (0xffe8 <= $code && $code <= 0xffee)
            );
        }
        
        static private function is_unicode_type_F($code) {
            return (
                ($code == 0x3000) || (0xff01 <= $code && $code <= 0xff60) || (0xffe0 <= $code && $code <= 0xffe6)
            );
        }
    }
?>

いや、なんていうか、その、ごめんなさい。

使おうという奇特な人に注意事項: 猛烈に遅いです。mb_strwidth の 30 倍くらい時間がかかります。あと、大量にデータ食わせると "キャッシュ" が膨れあがります。今のところキャッシュをどうにかするロジック