写在前面的:
由于是windows平台实现的,只要保证脚本命令能在cmd控制台运行,则可以在php中利用system()实现。
注意事项:
(1).保证system的路径中无汉字和空格 !! (亲身试验:路径中如果有空格,就得不到结果!!)
(2).事先要配置R语言环境,在windows环境变量path中添加路径C:RR-3.4.0in
程序如下:
R 路径:C:RR-3.4.0inR.exe
test1.R 路径:C:Rwork est1.R
print(123)
index.php
<?php //R echo "</br>Hello R!</br>"; $se=shell_exec('C:RR-3.4.0inR.exe --vanilla <C:Rwork est1.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 FilesRR-3.2.0in 工作目录切换到R的核心程序目录
键入 R BATCH F:Test.R 或 Rscript F:Test.R 运行脚本
前者R控制台内容记录到Test.Rout文件中,后者则将数据输出到windows控制台。二者涉及文件创建都需要权限。