例えば、初心者用シューズという文字列の読み方を取得したいとする。
読み方を取得する時は、Mecabというものを利用すれば良くて、以前、PHPで形態素解析エンジンのMaCabを使用する為の手順のメモで使ったphp-mecabを利用しようとしたが、PHP8ではマクロの箇所でエラーになり使用できない。
そこで力技で読み方を取得するコードを書いてみた。
環境
OS:Ubuntu 20.04
PHP:8.0.10
Mecabのインストールは下記の通り。
sudo apt install mecab sudo apt install libmecab-dev sudo apt install mecab-ipadic-utf8 #インストールの確認 mecab -v
PHPのCLIから力技でMacabを使うコードは下記の通り。
/path/to/dir/mecab.php
<?php
$itemName = "初心者用シューズ";
exec("echo " . $itemName . " | mecab", $res);
if(is_array($res) && count($res)){
$katakana = "";
foreach($res as $v){
$arr = explode(",", $v);
//idx:7にカタカナの読み方がある
if(count($arr) < 8) continue;
$katakana .= $arr[7];
}
var_dump($itemName);
var_dump($katakana);
// カタカナからひらがなに変換する
$hiragana = mb_convert_kana($katakana, "c");
var_dump($hiragana);
}
ファイルを保存して実行してみる。
$ php /path/to/dir/mecab.php string(24) "初心者用シューズ" string(36) "ショシンシャヨウシューズ" string(36) "しょしんしゃようしゅーず"
とりあえず、要件を満たす結果は返ってきた。
PHP8でMecabを動かすライブラリが欲しいな。





