エス技研

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.

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

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

  関連記事

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

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

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ
QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ

CakePHP2用のQRコード作成ライブラリ「cakePHP-QR-Code-Helper」をプレーンのPHPでも使うためのカスタマイズ方法を解説。1ファイルを設置するだけでQRコードが作れるため使い勝手がいい。

PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較
PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較

PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。

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

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

ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について

レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。

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

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

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

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

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説
連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。

ECCUBEでカード決済NGの受注情報をマイページ購入履歴に表示しない方法解説

ECCUBEでカード決済に失敗しても購入履歴一覧に注文情報(受注情報)が表示される問題への対処方法を解説。受注情報レコードの作成の流れとステイタスについても解説。