Php 如何向WEB用户显示由在R中编写的WEB逻辑服务器创建的绘图(图形照片)
我正在使用apache、PHP和R(一种统计编程语言)构建一个Web站点来构建逻辑服务器。该程序与apache在同一个sarver上。客户端用户使用Web站点是为了使用我们用R构建的应用程序。这可以通过使用为此目的创建的R_模块实现(因此R可以与apache通信) 这是R_模块的链接 问题是: 我们可以使用PHP以R代码的形式发送文本,并以文本形式返回R应用程序答案。这就是R_模的作用 但我不知道如何带回情节(图表和照片)。R中的一些函数提供PLO作为输出。这就是我想向用户展示的内容。但我不知道怎么做 我想我需要找到的是保存绘图的缓存目录,并将其作为pic返回。但我不确定……如果是这样,PLO是根据命令创建的,并且外观无休止。只需将绘图从服务器上的R保存到(临时)文件中,然后将该图像提供给客户端即可 您可能对Rapache邮件列表中的以下线程感兴趣: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作为输出。这就是我想向用户展示的内容。但我不知道
@尤尼,请不要越过柱子!我们已经在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>