无法从php执行RScript

问题描述 投票:0回答:1

这里是新功能,也是php编码的新功能。我目前正在尝试使用exec()函数从php执行RScript。当我在localhost中运行php代码时,它将打开RStudio程序,但不执行脚本中的代码。(这使我认为这不是目录问题,因为它实际上可以找到文件)这是我尝试过的经典示例。邮递区号:

<html>
  <head>
    <h1>PHP and R Integration Sample</h1>
  </head>
  <body>
        <?php
      // Execute the R script within PHP code
      // Generates output as test.png image.
    exec("RvsPHP.R");
    ?>
    <img src="test.png?var1.1" alt="R Graph">

  </body>
</html>

然后,我的Rscript(在同一目录中另存为“ RvsPHP.R”:

x <- rnorm(6,0,1)
png(filename="test.png", width=500, height=500)
hist(x, col="orange")
dev.off()

我对Rscript的输出不感兴趣,只是它已被执行(即创建.png图像)注意:如果我手动按ctrl + enter并执行脚本,则exec()使用RStudio打开文件后,就会创建.png图像,并且一切正常。如果我不这样做,RStudio将保持打开状态,并且没有任何反应,并且浏览器将一直加载直到达到超时。我找不到避免按ctrl + enter的手动部分的方法。我也尝试过passthru()和system()php函数,但是没有运气。

谢谢!问候,JuanFran

php r exec rscript
1个回答
0
投票

我将在这里进行一个大胆的猜测:1)Rstudio不是从中执行Rscripts的程序,而是一个可帮助您编写它们的程序。 2)您在脚本中没有shebang。因此,您需要安装Rscript以便可以在该环境下执行文件,在这种情况下,您的PHP代码将读取类似于

的内容。
exec("Rscript RvsPHP.R");

或者您在脚本中有一个shebang。无论哪种方式,您都需要告诉计算机执行该脚本的方式,并且它必须是为执行脚本而构建的。

© www.soinside.com 2019 - 2024. All rights reserved.