[自在]Tweetilyの不具合を修正する方法は、PHPの関数をマルチバイト対応のものに変更すること。

WordPressのプラグイン「Tweetily」はWordPressの過去記事をTwitterに飛ばしてくれて、いつも重宝しているのだが、タイトルが140文字より全然少ないのに「…」という省略表示になるのが気になっていた。

Tweetilyは英語圏のプラグインなので、マルチバイトに対応していないのが原因らしい。日本語1文字2バイトで、70文字を超えると省略されてしまうということらしい。

下記のサイトを参考に、strlen()などの関数をマルチバイトのmb_strlen()に書き直したら、日本語の文字数を正しくカウントしてくれるようになった。

日本語を70文字しかツイートできない「Tweetily」の不具合を日本語タイトル対応に修正する方法

ちなみに、『初めてのPHP5』に記載されているマルチバイト文字列処理の一覧をあげると、下記のとおり。

mb_strcut(): strcut() #文字列の一部を取得
mb_strlen(): strlen() #文字列の長さを取得
mb_strpos(): strpos() #文字列が最初に出現する位置を取得
mb_strrpos(): strrpos() #文字列が最後に出現する位置を取得
mb_strtolower(): strtolower() #大文字を小文字に変換
mb_strtoupper(): strtoupper() #小文字を大文字に変換
mb_substr(): substr() #文字列の一部を取得
mb_substr_count(): substr_count() #文字列の出現回数を取得

日本語扱うなら、すべてマルチバイト処理した方がいいのかも。

初めてのPHP5 増補改訂版
初めてのPHP5 増補改訂版

posted with amazlet at 13.03.21
David Sklar
オライリージャパン
売り上げランキング: 46,978