2017-09-01 150 views
0

我試圖從PHP傳遞一個var到我的python腳本,但它似乎不工作,我看過不同的論壇帖子,似乎無法讓它工作,我哪裏錯了? 在Python腳本var是第一睡眠將PHP var傳遞給Python腳本

這裏是我的PHP腳本:

$var1 = $_GET['speed']; 
$command = escapeshellcmd('python /var/www/html/blink.py $var1'); 
$output = shell_exec($command); 
echo $output; 

這裏是我的Python腳本:

import RPi.GPIO as GPIO 
from time import sleep 
import shlex 
from subprocess import call 
import sys 

while (True): 

    # Turn all relays ON 
    call(shlex.split('gpio mode 1 out')) 
    call(shlex.split('gpio write 1 0')) 

    # Sleep for 5 seconds 
    sleep(sys.argv[1]) 
    # Turn all relays OFF 
    call(shlex.split('gpio write 1 1')) 

    # Sleep for 5 seconds 
    sleep(2) 
+0

'sys.argv中[1]'是一個字符串,你需要將其轉換成一個數字。調用:'sleep(int(sys.argv [1]))',並進行錯誤檢查。 – SuperSaiyan

+0

你可以添加一個簡單的'print(sys.argv)'到python腳本並告訴我們它輸出了什麼? – Marco

回答

0

我最後一次檢查,單引號不要不擴展變量。除非您嘗試將文字字符串$var1發送到您的python腳本,否則您需要更改$command = escapeshellcmd('python /var/www/html/blink.py $var1');以展開該變量。

一種方法是$command = escapeshellcmd('python /var/www/html/blink.py ' . $var1);

+0

編輯你的答案,明確表明什麼是修復是請。 – ishegg

+1

編輯顯示修復程序。 – user176717

+0

不幸的是,這並沒有工作,我怕,它仍然發佈到python腳本,但不通過變量通過 – SARUAV