Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-在exec()中转义php变量_Php - Fatal编程技术网

php-在exec()中转义php变量

php-在exec()中转义php变量,php,Php,早上好,伙计们 我在转义包含要传递给exec()的变量的字符串时遇到问题。以下是字符串: $send_telemetry = exec ( 'echo "Temp 1="'.$temp_1[0].'" Pressure 1="'.$pressure_1[0].'" Flow 1 ="'.$flow_1[0].'" | mutt -s "Telemetry values for AREA 11C" telemetry@mymail.com' ) ; echo "$send_telemetry" ;

早上好,伙计们

我在转义包含要传递给exec()的变量的字符串时遇到问题。以下是字符串:

$send_telemetry = exec ( 'echo "Temp 1="'.$temp_1[0].'" Pressure 1="'.$pressure_1[0].'" Flow 1 ="'.$flow_1[0].'" | mutt -s "Telemetry values for AREA 11C" telemetry@mymail.com' ) ;
echo "$send_telemetry" ;
我以前有过这样的工作,但是一些过分热心的新手技术人员认为更改代码是个聪明的主意,结果他把代码弄得一团糟。我知道
shell\u exec()
,但我更喜欢
exec()


感谢您

从PHP网站获得有关函数escapeshellarg

escapeshellarg()在字符串周围添加单引号,并使用引号/转义符 允许您将字符串直接传递给 shell函数,并将其作为单个安全参数处理。 此函数用于将单个参数转义到shell 来自用户输入的函数。shell函数包括exec(), system()和backtick运算符

所以,您可能应该做的是转义传递到命令中的任何变量,就像这样

$send_telemetry = exec ( 'echo "Temp 1=" ' . escapeshellarg($temp_1[0]) . ' "Pressure 1=" ' . escapeshellarg($pressure_1[0]) . ' "Flow 1 =" ' . escapeshellarg($flow_1[0]) . ' " | mutt -s "Telemetry values for AREA 11C" telemetry@mymail.com' ) ;
echo "$send_telemetry" ;