• 締切済み

PHP+windowsでChasenを使いたい

お世話になっております。 散々Googleなどで調べてみたのですが、解決しなかったので質問いたします。 PHP4.4.2+Apache2.0をWindowsXP環境で動かして制作をしているのですが、 表題のとおり、PHPでChasenをうごかすことができずに困っています。 以下のサイトを参考にしているのですが、そのとおりにやってみても動かないのです…。 http://aineko.com/php/program/chasen.php コマンドプロンプトから、Chasen単体を動かせることは確認済みです。 以下PHPソースになります。 $chasen ="C:\ChaSen\chasen.exe"; $contents = "明日は晴れるそうですね。"; $results = popen ("echo $contents | $chasen ", 'r+'); while ($chasen_result = fgets($results)) { $result = split("\t",$chasen_result); $num = count($result); for($i=0;$i<$num;$i++){ echo $result[$i]."\t"; } print "\n"; } pclose ($results); WEB上で動かしてテストしているのですが、特にエラーが返ってくるわけではなく、 真っ白な画面のまま、何も出力されないのです。 調べてみたところ、$resultにはResource id #2が入っており、 $chasen_resultはからっぽ、という状態です。 PHPを初めて間もないため、リファレンスなど参考にあれこれしているのですが 一向に解決しません…。 何かご存知の方、ご教授をお願いいたします。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

php.iniで safe_mode = On にしたら真っ白になりました これが原因ではないでしょうか

lune07
質問者

お礼

早速の回答ありがとうございます。 しかし教えていただいたことを全て試してみましたが、やはり動きません…。 safe_modeは最初からOffになっていました…。

lune07
質問者

補足

引き続きイロイロやってみています。 ファイルリソースが返ってきているので、パイプ処理自体は成功していると思うのですが、 それをfgetsして変数に代入してみると空っぽです。 結果、while文に入れていないということになります。 他サンプルなど探し回ってみましたが、どれも方法は上にあげたソースとさして変わらないため、 途方にくれています。php504さんも、Windowsなのですよね? 自PCがいけないのでしょうか。心当たりが全く無いので困っています。 引き続き、何か情報をお持ちの方いらっしゃいましたらご教授下さい。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

#1は関係ないようです(でも2重引用符内では\\を使わないとバグの元になります) 茶筅をC:\chasen\にインストールしてソースをそのままコピーして実行したらちゃんと動きました

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ぱっと見て気づいた点ですが $chasen ="C:\\ChaSen\\chasen.exe"; か $chasen ='C:\ChaSen\chasen.exe'; にしてみたらどうでしょう

関連するQ&A