【问题标题】:Pass and get variables between PHP and R在 PHP 和 R 之间传递和获取变量
【发布时间】:2011-12-30 03:01:38
【问题描述】:

我有一个作为 cron 作业运行的 php 文件。该文件每天一次使用 curl 获取当天所有的足球比赛,并将它们存储在数据库中。所以表nextgames有以下内容:

主队、客队、联赛、各种事物的赔率,例如 1、X、2 等(无关紧要)。

对于这些游戏中的每一个,我都想运行一些 R 代码。所以基本上,在 php 脚本中,我需要运行如下命令:

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

我的第一个问题是:在那个脚本中,我需要通过 HomeTeam、AwayTeam 和 League。那么如何将这些变量传递给脚本呢?

我的第二个问题是:该脚本有一个 7x7 矩阵,表示每支球队得分 0、1、2、3、4、5 或 6 球的概率。如何将这些数据返回给 php?

PS:我无法将 rapache 安装到我是 atm 的网络主机上。

【问题讨论】:

    标签: php r


    【解决方案1】:

    查看proc_open 文档页面上的示例:http://php.net/manual/en/function.proc-open.php

    我的建议是将矩阵的内容输出为某种可移植格式,例如 JSON(看起来 R 可以执行 JSON)。然后只需 json_decode R 脚本的输出。

    【讨论】:

    • 我第一次看到 proc_open(对 php 有点新)有很多东西要读。将阅读并尝试一下。将返回结果。
    • 如果你只是exec执行R脚本,并且只需要读取输出而不提供任何输入,那么你可以在“r”中使用popen而不是php.net/manual/en/function.popen.php(阅读) 模式。
    • 我还需要传递输入(两支球队和联盟创建泊松回归)所以我想 proc_open 是我正在寻找的。但是从我正在阅读的文档中,它说“如果你像我一样厌倦了 proc_open 处理流和退出代码的错误方式;这个例子展示了 pcntl、posix 和一些简单的输出重定向的力量:”什么是错误方式?
    • 老实说,我不知道。我在生产代码中使用了 proc_open 很多次,没有问题。
    • 呵呵。我试试看。我很确定其中一种解决方案(使用 proc_open 或 json 或家伙建议的另一种)将毫无问题地工作。如果不是,我想我会带着另一个问题回来。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2013-07-23
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多