2016-06-19 8 views
1

私は内部にpython関数を持つpythonスクリプトを持っており、関数はパラメータを取ります。今私はPythonの関数を実行したい。パラメータはphpから与えられます。 しかし、pythonファイルは別のディレクトリにあります。PHPからPython関数(パラメータを取る)を実行するにはどうすればよいですか?

例:PHPはsite/phディレクトリにあり、Pythonは

してください男は私が

+0

。これを読むhttp://stackoverflow.com/questions/5965655/communication-between-php-and-python –

答えて

0

は、コマンドライン引数としてPHPパラメータを渡して考えてみましょうあなたの助けに感謝PHP からのpythonを実行する上で私を助けてsite/pytディレクトリにありますPHPのexec()を使用してPythonに変換します。そして、Pythonはそのsys.argvリストでそれを受け取ります:

PHPスクリプト(注:$出力は、アレイと$ return_varがスカラー、0またはそれ以外である)

$arg = "argument 1"; 
exec('python "/site/pyt/Script.py" "'.$arg.'"', $output, $return_var); 

// PYTHON OUTPUT 
echo "return value is: $return_var" . "\n"; 

foreach ($output as $line) { 
    echo $line."\n"; 
} 

をPythonのスクリプト(注意:sys.argvの最初の引数としてスクリプトのファイル名を持つリストである)

import sys 

# RECEIVING COMMAND LINE ARG 
php_param = sys.argv[1] 

def somefunction(p): 
    print("PHP Paramter: {}".format(p)) 

somefunction(php_param) 
あなたがそれらの間のソケット通信を使用することができます

出力(PHPスクリプトが実行される)

# return value is: 0 
# PHP Paramter: argument 1 
関連する問題