Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何向WEB用户显示由在R中编写的WEB逻辑服务器创建的绘图(图形照片)_Php_Apache_Web Applications_R - Fatal编程技术网

Php 如何向WEB用户显示由在R中编写的WEB逻辑服务器创建的绘图(图形照片)

Php 如何向WEB用户显示由在R中编写的WEB逻辑服务器创建的绘图(图形照片),php,apache,web-applications,r,Php,Apache,Web Applications,R,我正在使用apache、PHP和R(一种统计编程语言)构建一个Web站点来构建逻辑服务器。该程序与apache在同一个sarver上。客户端用户使用Web站点是为了使用我们用R构建的应用程序。这可以通过使用为此目的创建的R_模块实现(因此R可以与apache通信) 这是R_模块的链接 问题是: 我们可以使用PHP以R代码的形式发送文本,并以文本形式返回R应用程序答案。这就是R_模的作用 但我不知道如何带回情节(图表和照片)。R中的一些函数提供PLO作为输出。这就是我想向用户展示的内容。但我不知道

我正在使用apache、PHP和R(一种统计编程语言)构建一个Web站点来构建逻辑服务器。该程序与apache在同一个sarver上。客户端用户使用Web站点是为了使用我们用R构建的应用程序。这可以通过使用为此目的创建的R_模块实现(因此R可以与apache通信)

这是R_模块的链接

问题是:

我们可以使用PHP以R代码的形式发送文本,并以文本形式返回R应用程序答案。这就是R_模的作用

但我不知道如何带回情节(图表和照片)。R中的一些函数提供PLO作为输出。这就是我想向用户展示的内容。但我不知道怎么做

我想我需要找到的是保存绘图的缓存目录,并将其作为pic返回。但我不确定……如果是这样,PLO是根据命令创建的,并且外观无休止。

只需将绘图从服务器上的R保存到(临时)文件中,然后将该图像提供给客户端即可

您可能对Rapache邮件列表中的以下线程感兴趣:

一个基本示例(使用brew):



@尤尼,请不要越过柱子!我们已经在RApache邮件列表上回答了类似的问题。您还应该尝试提供问题的准确描述

据我所知,您需要在服务器端检索由R生成的图像,以便在客户端(即在浏览器中)显示它。如果是这样的话,下面是:

  • 您并不真正需要PHP——您可以开发一个强大的RApache驱动的web应用程序,使用HTML/CSS/JavaScript和AJAX调用R脚本(就像Jeroen Ooms在他的文章中所做的那样)
  • 您不返回plot“本身”,而是返回plot图像文件的路径,如@daroczig
  • 您不需要将图像保存在临时目录/文件中-您可以将其保留在服务器上以备将来使用(如果这符合您的应用程序设计)。顺便说一句,我不确定tempfile策略是否会按预期工作,因为RApache会在每个HTTP请求时启动新会话
  • 您可以查看我最近的项目,因为它与您的问题密切相关。请注意,它处于开发的早期阶段
    • 安装Firebug并密切关注网络面板
    • 研究杰夫的
附言


如果您决定使用
brew
,请不要将Apache
指令设置到存储图像的文件夹,因为RApache将尝试使用
brew
功能处理目录中的所有文件。将Apache指令与正则表达式一起使用,因为它非常灵活。系统地命名文件(使用前缀或smth)并使用AJAX。您实际上不需要
brew
,因为这项工作可以通过
sys.source
完成。尽量避免使用HTML+R/
brew
mashup代码。返回JSON并使用JavaScript取消序列化。

您可以不使用PHP或在服务器上写入文件来执行此操作,方法是创建一个R tempfile()对象来保存绘图,然后使用sendBin()在浏览器中显示绘图。下面是一些示例R代码:

setContentType("image/png")
t <- tempfile()
png(t,type="cairo")
plot(rnorm(100), col = "blue")
dev.off()
sendBin(readBin(t,'raw',n=file.info(t)$size))
unlink(t)
DONE
setContentType(“图像/png”)

所以你有由R生成的图像,你找不到如何通过PHP将它们输出到浏览器?(+1)非常好,全面和非常有用的答案!
setContentType("image/png")
t <- tempfile()
png(t,type="cairo")
plot(rnorm(100), col = "blue")
dev.off()
sendBin(readBin(t,'raw',n=file.info(t)$size))
unlink(t)
DONE
LoadModule R_module  /usr/lib/apache2/modules/mod_R.so

<Location "/R">
  ROutputErrors
  SetHandler r-script
  RHandler sys.source
</Location>