我对php和perl有一个问题,我需要从我的带有phpigniter的网站php执行perl脚本,但是该脚本的执行并不明显。我解释得更好。
perl脚本会生成一个csv文件,当我在控制台中执行时,它可以正常运行,但是当我从PHP运行时,它不会生成该文件,并且在执行过程中不会出现任何错误,所以我认为,它只是没有运行。
该脚本需要3个输入参数,这些参数先前在执行时已连接在一起。但是即使我试图强制执行脚本,将值放在执行命令中,也什么也没发生。
我尝试通过以下方式执行它:
$perl_script = './zc_csv_dist_crd_3.pl' . ' ' . $ctac_corre . ' ' . $codigo. ' ' . $num_dist;
exec($perl_script);
或
system($perl_script);
或直接
shell_exec("./zc_csv_dist_crd_3.pl 7736 311745421 42906");
#or
exec("./zc_csv_dist_crd_3.pl 7736 311745421 42906");
#or
system("./zc_csv_dist_crd_3.pl 7736 311745421 42906");
我想澄清一下,我不需要返回值,即使是perl脚本也没有返回值,因为文件是空的或使用数据生成的,并且两种情况都是有效的。我读过它可能是权限问题,但是我对Perl,php和linux还是陌生的。我离开了linux服务器功能,希望有人可以指导我。
非常感谢您的帮助。
PD:我已经耐心地阅读了stackoverflow上的论坛,PHP手册,即使这样我也无法正常工作,我知道我在跳东西,但目前还看不到。
答案 0 :(得分:0)
您可能在Safe Mode中运行了PHP代码,在这种情况下,您将不允许您使用上述功能,请查看Safe Mode Functions
我发现这些链接中有一些与您相似的问题: Question 1 Question 2
希望对您有帮助。