繁体   English   中英

无法使用变量执行shell_exec()

[英]unable to execute shell_exec() with variable

我正在尝试运行shell_exec()并使用从客户端通过AJAX传递的变量。

此代码导致错误(输入文件不存在!):

$searched_image = escapeshellarg("/home/XXX/XXX/XXX/XXX/XXX/sp_dom1.jpg");
$old_path = getcwd();
chdir('../elevation/source_code/altitudes_system/');
$altitudes_system_result = shell_exec('./predict_altitude.sh -i "{$searched_image}" -p basic -o 0');
chdir($old_path);

但是,当我用/home/XXX/XXX/XXX/XXX/XXX/sp_dom1.jpg代码替换shell_exec(...)中的“ {$ searched_image}”时,效果很好:

$old_path = getcwd();
chdir('../elevation/source_code/altitudes_system/');
$altitudes_system_result = shell_exec('./predict_altitude.sh -i /home/XXX/XXX/XXX/XXX/XXX/sp_dom1.jpg -p basic -o 0');
chdir($old_path);

您不知道为什么会这样吗?

你写:

'./predict_altitude.sh -i "{$searched_image}" -p basic -o 0'

在单引号字符串内部不评估变量。

您可以使用它来代替:

"./predict_altitude.sh -i '{$searched_image}' -p basic -o 0"

或者-为避免不可预测的评估-这是:

$cmd = './predict_altitude.sh -i \''.$searched_image.'\' -p basic -o 0';
shell_exec( $cmd );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM