エス技研

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でテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合

テンプレートをアップロードする際にファイルサイズが大きすぎてエラーが表示される際の対処方法解説。パラメータ設定で設定する制限について解説を行っています。

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。

ECCUBE2.13.3で商品規格の在庫数が無制限から変更できないバグがある

2.13.3固有のバグである商品規格の在庫数の入力エリアがアクティブにならない不具合を解消する解説です。product_class.tplの2行を修正するだけの簡単対応です。

QRコード(二次元バーコード)作成サービスを公開
QRコード(二次元バーコード)作成サービスを公開

QRコード(二次元バーコード)を生成するサービス。QRコードにする文字列を入力するだけで QRコードが簡単に作れる。オプションとして、画像サイズ、余白サイズ、エラー訂正レベルがある。

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

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

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

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

PHPで特定の日間の日付を for、strtotimeで表示する

ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。

PHPで配列の値をダブルクオーテーションで囲んでimplodeでカンマ区切りにする方法
PHPで配列の値をダブルクオーテーションで囲んでimplodeでカンマ区切りにする方法

PHPで配列の値を、preg_replace関数でクォーテーションで囲み、implode関数で「,(カンマ)」で区切ってテキスト化する方法。この方法であれば配列が空でも分岐の処理は必要なし!

パーミッション(属性)一括変更ツール・WordPress最適化済

WordPressのパーミッション(属性)を一括変更するツールを作成!ファイル、フォルダのパーミッションが一覧表示でき、ファイルを選んでパーミッションの変更が行えます。

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

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