如何将 R 与 PHP 集成?

机器算法验证 r
2022-03-23 18:19:03

我想使用 R 构建一个 Web 应用程序。我使用的是 Windows Vista 并且有一个 Apache 服务器。我试过Rpad,但我无法正确配置它。我如何设置 Rpad,因为我对 PHP 和 Apache 服务器不是很好?或者还有其他方法可以在 Apache 服务器上使用 R 吗?

3个回答

这是我发现的最简单的方法:

PHP 和 R 的这个实现只包含两个文件。一个用 PHP 编写,另一个用 R 脚本编写。PHP 返回一个表单,该表单使用 GET 方法将变量 N​​ 发送到服务器。提交表单后,PHP 将使用 PHP 命令 exec() 和 Rscript shell 命令的组合从 shell 执行 R 脚本。此命令会将变量 N​​ 传递给 R 脚本。然后,R 脚本将执行并将 N 个正态分布值的直方图保存到文件系统中。最后,当 R 脚本完成时,PHP 将返回包含保存图像路径的 HTML 标记。一、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 脚本

# my_rscript.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. http://danpolant.com/r-integration-with-php/

  2. http://steve-chen.net/document/r/r_php

如果您想切换到 Linux,最好的方法是使用RApachemod_R ,它是一个 Apache 模块,在网络服务器中嵌入了 R 解释器 ( )

如果您正在寻找一种从 PHP 执行 R 代码块的方法,这里有一个库可能会有所帮助:

https://github.com/kachkaev/php-r

use Kachkaev\PHPR\RCore;
use Kachkaev\PHPR\Engine\CommandLineREngine;

$r = new RCore(new CommandLineREngine('/usr/bin/R'));
$result = $r->run('1 + 1');
echo $result;

这将输出:

> 1 + 1
[1] 2