我想调用一个外部php脚本,该脚本使用我正在使用的docx php文档创建者之一生成docx文件。
我想知道我是否应该使用exec('/path/to/script.php $pass_var1 $pass_var2 $pass_var3 $pass_var4 $pass_var5 $pass_var6');
或
system('/path/to/script.php $pass_var1 $pass_var2 $pass_var3 $pass_var4 $pass_var5 $pass_var6');
它会将$ pass_var1作为$ pass_var1传递给script.php吗?如果我在脚本中调用它?哪一个用于此目的的功能更好?
答案 0 :(得分:1)
变量在双引号内扩展,而不是在单引号内。你需要使用
system("/path/to/script.php $pass_var1 $pass_var2 $pass_var3 $pass_var4 $pass_var5 $pass_var6");
此外,在设置所有escapeshellarg
变量时,如果它们来自不受信任的用户输入,则可能需要使用$pass_varN
。
答案 1 :(得分:0)
您可能希望使用include或require将脚本直接集成到项目中。使用system()或exec()可能非常危险,因为它可能允许Web应用程序的用户执行Web服务器上的几乎任何操作。关于您的问题,我相信在What are the differences of system(), exec() and shell_exec() in PHP?
部分回答了问题无论
exec("php -f /path/to/script.php $params")
或者
system("php -f /path/to/script.php $params")
应该工作