2014-06-19 104 views
0

我想在一個PHP執行函數PHP Exec用變量和字符串

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

交換「30」和「16」兩個變量「小時」和「分鐘」的回聲,改變它像:

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

我怎樣才能得到這個權利?謝謝

+1

只需將它連接起來:''echo''。$ hour。''。$ mins。'' –

回答

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

2

變量不在單引號字符串內部擴展,只在雙引號字符串中。所以切換你的報價。

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

爲此,您可以使用Concat的字符串

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 -'); 
1

我建議你sprintf。這不會失去可讀性。

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