写在前面的:
由于是windows平台实现的,只要保证脚本命令能在cmd控制台运行,则可以在php中利用system()实现。
注意事项:
(1).保证system的路径中无汉字和空格 !! (亲身试验:路径中如果有空格,就得不到结果!!)
(2).事先要配置R语言环境,在windows环境变量path中添加路径C:\R\R-3.4.0\bin
程序如下:
R 路径:C:\R\R-3.4.0\bin\R.exe
test1.R 路径:C:\Rwork\test1.R
print(123)
index.php
<?php
//R
echo "</br>Hello R!</br>";
$se=shell_exec('C:\R\R-3.4.0\bin\R.exe --vanilla <C:\Rwork\test1.R');
//echo $se;
if($se==0){
sleep(2);
echo "分析成功 ".$se.'</br>';
}else{
echo "分析失败 ".$se;
}
?>
输出:
Hello R!
分析成功
R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
R�����������������κε�����
��ijЩ����������Խ�������ɢ����
��'license()'��'licence()'����ɢ������ϸ������
R�Ǹ������ƻ�����������Ϊ֮�����˹���.
��'contributors()'���������ߵ���ϸ���
��'citation()'�����������ڳ���������ȷ������R��R�������
��'demo()'����һЩʾ��������'help()'���Ķ����߰����ļ�����
��'help.start()'ͨ��HTML��������������ļ���
��'q()'�˳�R.
> print(123)
[1] 123
参考:
Windows:
键入 cd C:\Program Files\R\R-3.2.0\bin 工作目录切换到R的核心程序目录
键入 R BATCH F:\Test.R 或 Rscript F:\Test.R 运行脚本
前者R控制台内容记录到Test.Rout文件中,后者则将数据输出到windows控制台。二者涉及文件创建都需要权限。