エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


SEO対策用タイトル、ディスクリプションの文字数カウントツール

      2014/08/19

SEO対策用タイトル文字数をカウントするツール

 

文字数カウンター、文字数チェッカー

 
このブログを書く際にタイトルやディスクリプション、概要の文字数をカウントするツールを作りましたので、そのご紹介です。
 
 
もともと、SEOをそれなりに気にしてタイトルを付けてはいましたが、最近はもっとしっかり対応した方がいいと思えてきまして、タイトルの文字数もカウントしながらつけるようになってきていました。
ですが、さすがに毎回毎回手でカウントしていくのには限界がありまして、やっぱり何かしら仕組みが必要だと思うに至ったのです。
 
もちろん文字数をカウントしてくれる Webツールはあちこちにありますので、わざわざ作るまでもないものではありますが、思わず作ってみたくなったという感じでしょうか。
 
とはいえ、文字数をカウントするだけのツールですので、原型を作るのにはほとんど時間はかかっていません。(細かな調整も含めると数時間ほどかかっていますが。)
 
 文字数カウントツール
 http://s-giken.info/count/char_count.php
 
 

mb_strlen関数を使うときの注意点

 
しかし、原型はあっさり出来上がったものの、文字数をカウントする mb_strlen関数がいまいち正確に動いていないように見えました。
 
いろいろ調べて見た結果、mb_strlen関数は、環境によって正確に動かない可能性があることが分かりましたので、併せてここに記録しておこうと思います。
 
 
具体的に、私のローカルの開発環境である XAMPP環境で下記を実行すると
 
——————

——————
 
で実行すると「63」という結果が返ってきました。
これは、バイト数をカウントする「strlen」と同じ結果でした。
 
おかしいですね。
 
 
これは、PHPの内部エンコーディングが文字列のエンコーディングと異なっている場合に mb_strlen関数は正常な値を返してくれない可能性があることに起因している不具合です。
 
そのため、現在の環境で不具合がなかったとしても、今後サーバ環境を移転したり、PHPのバージョンが上がったりすることで環境が変わった場合には不具合が起こる可能性もあることから、mb_strlenを始め、mb_*****系の関数は文字コードを指定して使用する方がよさそうです。
 
ここでは、プログラムファイル自体を UTF-8で作成していますので、第二引数として指定する文字コードも UTF-8で指定をします。
——————

——————
 
そうすると正確な「23」文字と出てきました。
 
 
また、UTF-8を間違って SJISを指定してしまうと「37」という結果が返ってきます。
 
ちなみに、この結果からもわかるように、全角文字を Shift-JISでは 2バイト、UTF-8では 3バイトとして扱っていることが分かりますね。
 
そんな記事は「日本語は2バイト文字?3バイト文字?」にも書いていますので、併せて読んでいただければ、と思います。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

ECCUBEの管理画面のSSL設定をインストール後に変更する方法

ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。

PHPパーミッション変更のchmod関数・モードを変数で指定する方法

パーミッション変更関数であるchmod関数の第二引数、ファイルモードの指定に変数を使う場合は8進数に変換するoctdec関数を使って変換します。

CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説

CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。

JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()
JSON形式の値を配列形式に変換・PHPでは json_decode()、json_encode()

JSONとは「JavaScript Object Notation」の略でテキストベースのデータフォーマット。JSONの値をPHPで配列に変換するWebツールの紹介とその処理「json_encode()」「json_decode()」関数の解説。

ECCUBE mtb_constants initパラメータ設定の項目を追加する方法

ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。

PHPで正規表現の検証には preg_match_allが便利

PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。

リダイレクトループが原因で「ERR_TOO_MANY_REDIRECTS」「このページを表示できません」が出たときの対策12事例+α

リダイレクトループ、自動転送設定ループの原因の解説とその対応方法を含め事例 12例を挙げて説明。

ECCUBEの問い合わせフォームに任意の値を引数として渡す方法

ECCUBEのお問い合わせフォームに値を固有の情報を送りそれに基づいて処理をする方法を解説。ボタンの設置、受け取り側のテンプレート、プログラムのサンプルソースを提供。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

フォルダを指定してファイルのパーミッションを変更するプログラム

フォームからフォルダ、パーミッションを指定しパーミッションを変更するサンプルプログラムの解説です。