2014-12-23

mb_substrで切り出す

Picoconfig.phpにある$config['excerpt_length']は 単語単位のため、日本語の記事だと使いづらい。

そこで、Picoを改造して文字単位に変える。

Picoインストールディレクトリ下のlib/pico.phpを開き、 250行目あたりを以下のように変える。

'excerpt' => mb_substr(strip_tags($page_content), 0, $excerpt_length)

mb_substrが有効でない?

mbstringが有効になっていないと、ログに以下のように出る。

PHP Fatal error:  Call to undefined function mb_substr()

mbstringを有効にする

PHP 5.5.19, Fedora 20の場合

  1. php.iniでmbstringを有効にする。
  2. php-mbstringをインストールする。
  3. apacheを再起動
$ sudo vi /etc/php.ini

zend.multibyte = On
zend.script_encoding = UTF-8

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

$ sudo yum install php-mbstring
$ sudo systemctl restart httpd

mbstring.internal_encodingはデフォルトのエンコーディングで、 mb_substrの第4引数を省略した場合に使用される。