2017-09-01 11 views
0

私はPHPからPythonのスクリプトにvarを渡そうとしていますが、動作していないようですが、私は別のフォーラムの投稿を見てきました。どこが間違っていますか? PythonスクリプトでVARここで最初の睡眠のためにPHPのpyを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

関連する問題