OneCode-cucldk.com

当前位置:首页 - PHP编程 - 正文

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

重点在于php激活R程序运行,并向R传递计算参数,获得结果。

php激活R,可以采用内置函数exec,这样只要在操作系统运行窗口执行的命令都可以在此执行,R执行的命令为(以下均指在windows环境下)

"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时,需要特别注意输出字符串是否符合要求。另外,对于文件的存储等,尽量使用绝对路径。


本文来源:OneCode

本文地址:https://www.cucldk.com/post/php-r.html

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。