2011-12-30 9 views
1

私はcronジョブとして実行されるPHPファイルを持っています。このファイルは、1日に1回、カールして、その日のフットボールの試合をすべて取得し、データベースに格納します。だから、テーブルnextgamesには、以下があります。PHPとRの間で変数を渡して取得する

HomeTeam、AwayTeam、リーグ、1など様々なもののオッズ、X、2等の下(重要ではありません)。

これらのゲームのそれぞれについて、いくつかのRコードを実行したいと思います。だから、基本的には、PHPスクリプト内で私は次のようにコマンドを実行する必要があります。

exec("Rscript <path>/myscript.R"); 

私の最初の質問は次のとおりです。そのスクリプトでは、私はHomeTeam、AwayTeamとリーグを渡す必要があります。どうすればこれらの変数をスクリプトに渡すことができますか?

私の2番目の質問は次のとおりです。このスクリプトは結果として、各チームが0,1,2,3,4,5または6のゴールになる確率を表す7x7の行列を持ちます。どうすればそのデータをPHPに戻すことができますか?

PS:私はatmですwebhostにrapacheをインストールできません。

答えて

4

チェックアウトproc_openドキュメントのページの例:http://php.net/manual/en/function.proc-open.php(Rは、JSONを行うことができます表示されます)私は、このようなJSONなどの一部のポータブル形式、としてあなた行列の内容を出力していることをお勧め

。次に、Rスクリプトの出力をjson_decodeします。

+0

初めて私はproc_open(phpを少し新しくしたもの)がたくさん読んでいるのを見ています。それを読んで試してみる。結果とともに戻ってきます。 –

+0

Rスクリプトを 'exec'しているだけで、出力を読み込んで何も入力しない場合、http://www.php.net/manual/en/functionの代わりに' popen'を使うことができます。 popen.phpを "r"(読み取り)モードにします。 – sberry

+0

私も入力を渡す必要があります(2チームとリーグはポアソン回帰を作成するため)ので、私はproc_openが私が探しているものだと思います。しかし、私は読者と同じように、私のように、バグのような方法でproc_openがストリームと終了コードを処理するのに疲れている、この例ではpcntl、posix、および単純な出力リダイレクトのパワーを実証しています。 ? –

関連する問題