如何将R与PHP集成?

时间:2015-06-29 18:23:29

标签: php r

我是PHP的新手,我想在PHP中运行Rscript。我尝试了这里提到的方法http://www.r-bloggers.com/integrating-php-and-r/,但它有用。我在窗口中使用wamp服务器。表单加载但是一旦输入$ N输入,Rscript就无法运行。(我通过查看是否创建了图像找到了。)我的php和r脚本的位置在&# 34; c:\ wamp \ www \"。所以,我是否必须将exec函数的路径设置为Rscript.exe位置?​​还是有其他方法吗?请帮助..

这是我的PHP代码

<?php
// poorman.php

echo "<form action='poorman.php' method='get'>";
echo "Number values to generate: <input type='text' name='N' />";
echo "<input type='submit' />";
echo "</form>";

if(isset($_GET['N']))
{
$N = $_GET['N'];

  // execute R script from shell
  // this will save a plot at temp.png to the filesystem
  exec("Rscript my_rscript.R $N");

  // return image tag
  $nocache = rand();
  echo("<img src='temp.png?$nocache' />");
 }
?>

这是r脚本

args <- commandArgs(TRUE)

N <- args[1]
x <- rnorm(N,0,1)

png(filename="temp.png", width=500, height=500)
hist(x, col="lightblue")
dev.off()

`

1 个答案:

答案 0 :(得分:0)

检查exec()的结果。例如。通过

exec("Rscript my_rscript.R $N 2>&1", $output);
echo '<pre>', join("\r\n", $output), "</pre>\r\n";

exec()只返回发送到stderr的输出:2&gt;&amp; 1将stderr重定向到stdout(也在windows下工作),所以你还应该看到错误消息,例如“RScript:command not found”