- ベストアンサー
PHPで半角スペース区切りで文章を表示する方法
- PHPを使って半角スペース区切りで文章を表示する方法について調査しました。
- kakasiを使った半角スペース区切りの表示方法について、自サーバーでの実行方法がわからず困っています。
- WindowsXPの自宅サーバーで半角スペース区切りの表示をするための解決策を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>kakasiをダウンロードしてきて、自宅サーバーの適当なところにおいて、絶対パスを合わせ、18行目のコメをはずせばいいんですね! そうです。 同時に17行目のほうをコメントアウトしといたほうがよいでしょう。 エラーにはなりませんが。 >38行目39行目で『空白つきで文字列を表示させるようなPHP』をかけばいいんですかね? お手軽に済まそうとすればそうですかね。 あんまりまじめにスクリプトを読んでませんが while ($get_kakasi = fgets($handle)) { //kakasiの結果を分解 $result = split("[\t\r\n' ]", $get_kakasi); echo "<pre>$result</pre>"; } とか。 もうちょっと出力に凝りたいのなら、$result を 空白でsplitした上で その結果得られた配列を使ってごにょごにょすればよいと思います。
その他の回答 (3)
- sakusaker7
- ベストアンサー率62% (800/1280)
スクリプトのコメントを読んでみましたか? 0013: /** 0014: * kakasiの実行パス 0015: * @global string $Kakasi 0016: */ 0017: $Kakasi = '/usr/bin/kakasi'; //Linuxの場合(例) 0018: // $Kakasi = 'C:\\kakasi\\bin\\kakasi.exe'; //Windowsの場合(例) 0019: 0020: /** 0021: * kakasiを使って単語に分解する 0022: * @param string $kakasi kakasiの実行パス 0023: * @param string $str 分解するコンテンツ 0024: * @param string $array 分解結果を格納する配列 0025: * @return なし 0026: */ kakashiの場所は18行目で設定できるようになってますし、 kakashiからの結果は $arrayで受けとってます。 0029: $handle = popen("echo '$str' | $kakasi -w ", "r"); 0030: 0031: //結果を1行ずつ取得 0032: while ($get_kakasi = fgets($handle)) { 0033: //kakasiの結果を分解 0034: $result = split("[\t\r\n' ]", $get_kakasi); 0035: //結果を配列に格納する 0036: foreach ($result as $key=>$val) { 0037: if ($val != '') { 0038: if (isset($array[$val])) $array[$val]++; 0039: else $array[$val] = 1; 0040: } 0041: } 0042: } 0043: pclose($handle); 38~39で単語ごとの登場回数を加算していますが、今回これは不要なので $get_kakashi(空白つきの文字列)か$result(空白で分割した単語ごとの配列)を 使えばよいと思います。 #しっかし、センスのかけらもない変数名のつけ方だな、これ
回答ではありませんが、単語ごとにスペースが入ってるのは逆に読みにくいと思います。 文字の間隔をあけたいなら、CSSのletter-spacingを使用したほうが見やすいと思います。
お礼
回答ありがとうございます。 『1つの文章を単語ごとにスペースで区切って出力させる』 というとてもわかりやすいことをやろうとしたいのですが、現実はどうやら非常に難しいらしいです。 技術がプロの人に尋ねたほうがいいんですかね? もう少しまってみて、変わらないようだったら他の場所で質問してきます。
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
「形態素解析 XP インストール」 とかで検索すると出てくるかも知れませんね。 chasen辺りが良さそうな気がしました。
お礼
回答ありがとうございます。 kakasiとPHPのサンプルまでもうすでに↑の記述通り見つけてるので、できれば上記条件で教えていただけないでしょうか? 1.kakasiの置き場所。 2.単語表示の仕方。 この2点が分かる方いらっしゃいましたらアドバイスお願いします!
お礼
回答ありがとうございます! 整理しますと、以下2点を行えばいいんですよね? まず、 kakasiをダウンロードしてきて、自宅サーバーの適当なところにおいて、絶対パスを合わせ、18行目のコメをはずせばいいんですね! 次に、 38行目39行目で『空白つきで文字列を表示させるようなPHP』をかけばいいんですかね? 確認お願いします!