【问题标题】:Sending value from R to php将值从 R 发送到 php
【发布时间】:2014-06-01 23:55:58
【问题描述】:

我在 .php 文件中有这段代码:

$nb1 = 1;
$nb2 = 2;
exec("C:/xampp/phpR/plotR.r $nb1 $nb2", $response);
echo $response;

我在 .r 文件中有:

args <- commandArgs(TRUE)
x<-args[1]+args[2]
print(x)

php 代码在浏览器上打印“数组”。它应该打印“3”。它打印“数组”。问题出在哪里? 谢谢

【问题讨论】:

  • 甚至不确定 R 是什么所以不能评论它应该返回什么,但是在你的 PHP 中尝试 print_r($response) 而不是 echo $response 它会打印数组结构,所以你可以看到它是什么。
  • 你好 Papillon,nop,代码收到一个空数组。事实上我已经使用了 print_r() 和 var_dump()

标签: php r


【解决方案1】:

PHP 将您的 R 脚本的响应解释为一个数组,我不确定 R 脚本是否实际上返回了一个数组。无论如何,如果您使用var_dump($response),您可能会得到类似

array (size=1)
  0 => int 3

我认为您应该能够将echo $response[0]; 替换为echo $response; 并获得所需的结果。

【讨论】:

  • 嗨,Aleatoric,数组为空。
  • 那听起来你的 R 脚本有问题。当您从命令行运行时,它会打印预期的输出吗?
【解决方案2】:

如果其他人遇到这个未回答的问题,我也遇到了同样的问题,结果证明是权限问题。运行我的网络服务器的用户无权运行我的 R 脚本。

这可以通过以下出色的指导进行诊断: How to retrieve PHP exec() error responses? 并查看错误。

为了让事情顺利进行,我还将 R 脚本的输出从 print(x) 更改为 write(x, stdout())print(x) 会给你[1] 3 作为输出,write(x) 会返回3

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多