Mecab/php7実装
提供: 初心者エンジニアの簡易メモ
2016年2月17日 (水) 19:06時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「 ==php7.0でmecabを動かす== php7でmecabを動かそうとすると以下エラーが出る PHP Fatal error: Uncaught Error: Call to undefined function mecab_split(...」)
php7.0でmecabを動かす
php7でmecabを動かそうとすると以下エラーが出る
PHP Fatal error: Uncaught Error: Call to undefined function mecab_split()
こちらにphp7で対応されてるphp_mecabがあるとのことだったので入れてみた
参考:https://twitter.com/rsky/status/672877419674468352 https://github.com/rsky/php-mecab
$ cd /usr/local/src $ git clone https://github.com/rsky/php-mecab $ cd php-mecab/mecab $ phpize $ ./configure --with-mecab=/usr/local/bin/mecab-config $ make $ make test $ sudo make install Installing shared extensions: /usr/lib64/php/modules/ $ php -r "print nl2br(print_r(mecab_split("すもももももももものうち")));" PHP Warning: Module 'mecab' already loaded in Unknown on line 0 PHP Fatal error: Uncaught Error: Call to undefined function mecab_split() in Command line code:1
mecab_split()ではなく\MeCab\split()に変更されている様子。
$ php -r "print_r(\MeCab\split("すもももももももものうち"));" Array ( [0] => すもも [1] => も [2] => もも [3] => も [4] => もも [5] => の [6] => うち )
参考:https://teratail.com/questions/27491
MeCab_Taggerも変更
Fatal error: Uncaught Error: Class 'MeCab_Tagger' not found // $mecab = new MeCab_Tagger(); // php5.6 $mecab = new \MeCab\Tagger(); // php7