php执行带变量和字符串的回显

时间:2014-06-19 11:44:44

标签: php

我想在php exec函数中用两个变量“hour”和“minutes”交换“30”和“16”

$hour = 30;
$mins = 16;
exec('echo "30 16 * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');

并改变它:

exec('echo "$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');

我怎样才能做到这一点?谢谢

4 个答案:

答案 0 :(得分:3)

未填充单引号字符串中的变量。尝试

exec('echo "'.$hour.' '.$mins.' * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');

exec("echo \"$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1\" | crontab -");

PHP String Documentation

答案 1 :(得分:2)

变量不会在单引号字符串中展开,只在双引号字符串中。所以切换你的报价。

exec("echo '$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1' | crontab -");

答案 2 :(得分:1)

您可以使用concat string

执行此操作
exec('echo "'.$hour.' ' .$mins.' * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');exec('echo "$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');

答案 3 :(得分:1)

我建议您 sprintf 。这不会失去可读性。

$format = 'echo "%d %d * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -';
exec(sprintf($format, $hour, $mins));