我想调用一个外部 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 传递到脚本中.php作为 $pass_var1? 如果我在脚本中调用它? 用于此目的的函数是更好的?
变量在双引号内展开,而不是在单引号内扩展。您需要使用
system("/path/to/script.php $pass_var1 $pass_var2 $pass_var3 $pass_var4 $pass_var5 $pass_var6");
此外,如果所有$pass_varN
变量来自不受信任的用户输入,则在设置所有变量时可能需要使用 escapeshellarg
。
您可能
希望使用包含或require将脚本直接集成到项目中。使用 system(( 或 exec(( 可能非常危险,因为它可能允许 Web 应用程序的用户在您的 Web 服务器上执行几乎任何内容。 关于你的问题,我相信这里有部分答案 system((、exec(( 和 shell_exec(( 在 PHP 中有什么区别?
也
exec("php -f /path/to/script.php $params")
或
system("php -f /path/to/script.php $params")
应该工作