とあるweb屋の仕事術

とあるweb屋の仕事術

10年以上現役のweb製作屋さん。web製作雑務全部やる。

絶対に役に立つ。Webデザイナーが使えるとはかどるPHP「文字数制御」

絶対に役に立つ。Webデザイナーが使えるとはかどるPHP「文字数制御」

Webデザイナーでも

PHPをさわる機会はそこそこあります。

なじみがあるのはWordPressでしょうかね。

 

僕の勤めている会社では、

自社のCMSを独自に開発しているのでPHPを

さわる機会も多く、自分で触れたほうが

開発がスムーズだったりします。

 

ここでいう「触る」というのは、

本当にだれでも知っていれば捗るというレベル

のものでPHPを書くとかいうレベルではないのですが、

覚えておくと絶対に役立つので紹介していきます。

 

今回は「文字数制御」について。

デザインでリード文や記事本文の末尾を「...」に

したりするあれ。

CSSやjQueryでやることもありますが、

PHPでできるならPHPでやったほうがスマートです。

 

jQueryはブラウザで描画処理される際に処理が走る

のでその分重い。省略されるテキストもHTMLソース

上に残る状態です。

 

PHPはサーバサイドで処理されるので、HTMLソースも

きれいになり、jQueryと違って描画処理が重くなること

もありません。

 

それではさっそくcodeです。

3つの方法があります。

「$hoge」という変数を100文字で文字制限をかける場合は以下のようになります。

<?php echo substr($hoge,0,100,"…") ?>
<?php echo mb_substr($hoge,0,100,"…") ?>
<?php echo mb_strimwidth($hoge,0,100,"…") ?>

 

「$hoge」の部分には

「'吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。ほげほげほげほげ'」

などテキストをいれてもよいです。

そこに入っているテキストが100文字で制御されます。

 

さて、では上記の3つの違いはというと、

以下のサイトが詳しく解説してくれていいます。

utamaru.jp

 

  substr => バイト数でカウント。半角1文字で1バイト、全角1文字で2バイト。 
mb_substr => 文字数でカウント。全角も半角も1文字としてカウント。
mb_strimwidth => 文字数でカウント。全角は2文字、半角は1文字としてカウント。

 

簡単で便利ですよね。

jQueryでやるよりサクッとできておすすめです。

「Webデザイナーが使えるとはかどるPHP」はシリーズ化してやっていきたいとおもいます。