由于某个原因,需要在PHP中调用R语音进行绘制图像。经过多方百度,目前大部分解决方案都是:利用PHP中的系统命令函数如exec,system,shell_exec等等来调用RScript脚本,常见的命令行有
-
exec("RScript " . $your_script_dir . "$your_RScript_file " . $args); // 里面有printf某个变量 // echo ("RScript " . $your_script_dir . "$your_RScript_file " . $args);
-
system("R --slave < " . $your_RScript_dir . "$your_RScript_file" . " --args " . $args); // 里面有printf某个变量 // echo ("R --slave < " . $your_RScript_dir . "$your_RScript_file" . " --args " . $args);
接下来,我们满怀信心地去运行PHP的时候,会发现我们所执行系统命令返回的值是1,也就是失败。但是,我们拿echo出来的语句去cmd窗口执行,发现是可以printf出结果,并且也生成了我想要的图像。这是为什么呢?经过多方百度跟尝试,终于找到解决方案。供大家参考并欢迎大家如果有更好的方法,也在评论区中发文,大家共同努力进步。
一、简单看下失败的调用情况
这是我在PHP中调用的R脚本的语句,下面是在浏览器中调用的结果。