このタイトルをみて、カウントがぶれるという話とご想像がつく方も多いと思いますが、まさにその通りです。

strlen()で全角文字のバイト数がぶれる

UTF-8環境でPHPのstrlen関数を使って全角文字をカウントすると、全角文字が2バイトではなく1から6バイトとしてカウントがされてしまいます。この開発日誌を読み直してみたところ、1年前くらいにサイトの文字コードをSJISからUTF-8に変えておりました。

UTF-8をSJISに変更してからカウント

解決方法はいたってシンプルで、strlen()を使う時には文字コードをSJISに強引に変えてしまえば問題ありません。

strlen(mb_convert_encoding($text,"SJIS","UTF-8"))

放置していた画像掲示板を手入れした際に、文字のカウントがどうもおかしいとは思っておりましたが、やっと修正をすることができました。

imgbbs_201109.gif
当時の画像掲示板の泉イメージ

おわりに

画像掲示板は少しずつ書き込みが増えてきたので、せっかくなのでサブドメイン化をして、ディレクトリ型検索エンジンdtnと分けた別サイトに仕立ててみましたこれに合わせてデザインも多少変えて、サイト名も画像掲示板の泉に変更しました。

ゼロから作った掲示板プログラムですので、まだまだ不具合が多いとは思いますが、よろしくお願いいたします。

PHPが学べるおすすめプログラミングスクール

この運営ブログをみて、もしdtn.jp管理人のようにサイトをゼロから作ってみたいという思いに駆られた方は、サイト開発やプログラミングをオンラインで受講できるプログラミングスクールの活用をしてみてはいかがでしょうか。サーバ/WordPress/HTML/CSS/JS/PHP/SQLなどの基本さえ分かれば、ゼロからサイト立ち上げもポンポンできるようになって、今なら仕事や転職にも役立つのでオススメです。

PHPも学べるオンラインスクール

  • CodeCampAWS Cloud9を使ったクラウド上のIDEが用意されているので、ネットにつながればスタート開始可能というゴージャスなスクールです。講師も選べて、Webマスターコースならプログラミング経験0でも一気にフロントエンドからバックエンドまでマスターできます。
  • ウェブカツJava言語やRuby言語なんぞ教えん!という、初心者にありがちな挫折ポイントがよく分かってるスクールです。フロントエンドエンジニアに必要なスキルセット&PHPがマスターできます。
  • フリークス HTML/CSSから始まり、MySQLやLinuxからPHPの変数や分岐やループ、クラスやPDOに最後はMVCまで教えてくれるので、そこまで分かればなんでもできそうです。メンターに質問もし放題がいいですね。
  • テックアカデミー法人のIT研修もやってる業界最大手・受講者数No.1のスクールです。メンターとの定期オンライン面談やチャットサポートなどもあり、大手ならではインフラ環境がウリです。PHPと合わせてjQueryもマスターできる、PHP/Laravelとフロントエンドコースがおすすめです。

オンラインスクールのデメリット

孤独になりがちなサイト制作も、優しいメンターがそばにいてくれれば凄い楽しそうですが、もちろんデメリットもあります。お金がかかるという点です。ひたすらググって、本を読んでよりは確実にコストがかかってしまいます。とはいえ、多少の余裕があるなら、こんなご時世なので時間と労力を買った方が良いと思います。