找回密码
 注册
查看: 8798|回复: 1

php调用R 输出的结果

[复制链接]
发表于 2013-4-16 19:26:54 | 显示全部楼层 |阅读模式
php作为web程序开发的主要语言,应用广泛。R作为一种统计软件,在数学算法的实现上具有良好的可操作性。最近,由于工作的需要,要对一些web应用的数据进行复杂的数学计算,但php本身虽然可以写一些数学算法,但仍难以满足需求,数十行代码的效率抵不上R中的一个函数,经过研究,最终实现了在php的即时访问中调用R进行计算操作,并直接读取计算结果,在web页面中进行显示。大概思路如下:


重点在于php激活R程序运行,并向R传递计算参数,获得结果。
php激活R,可以采用内置函数exec,这样只要在操作系统运行窗口执行的命令都可以在此执行,R执行的命令为
"D:\Program Files\R\R-2.15.2\bin\x64\R.exe" --vanilla < D:\\test.R > out.txt
第一部分为本机的R程序的路径,后边加R软件的option,可自定义,后加要执行的R程序文件,是重点,最后执行输出文件,此文件为指令必须,但对我们没有用处。
为了实现对php页面的每一次访问,因参数不同,分别执行不同的R程序,所以,test.R的程序文件名需要每次访问生成一个,保证每次访问都有一个唯一的R程序文件,在其中使用写文本文件的形式存储参数名和参数值,指定结果文件名,在php页面中指定激活该R文件,在该文件中可以指定调用复杂的固定文件名的R程序文件,运行后生成唯一的结果文本文件,php文件再去读取该文本文件的结果,进行处理进而显示出来,即实现目的。
exec($command,$out1,$out2);
php输出结果中,只要$out2的值为0,即为执行成功。


需要注意的是,文件路径用的反斜杠,在php中反斜杠的特殊的转义符号,生成$command时,需要特别注意输出字符串是否符号要求。另外,对于文件的存储等,尽量使用绝对路径。

转自http://blog.sina.com.cn/s/blog_59bba95d01015aw5.html
回复

使用道具 举报

发表于 2013-4-21 22:48:29 | 显示全部楼层
{:soso_e100:}学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-25 01:46 , Processed in 0.024441 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表