-1

phpからpyファイルを実行しようとしています。
これが私のコードです:

//usage python my.py var1 var2
$libre = 'python ../../../../root/py/my.py '.$var1.' '.$var2.'';
$cleanlibre = escapeshellarg($libre);
echo exec($cleanlibre);

なにが問題ですか?なぜ何も返さないのですか?

また、execを適切に保護する方法も知っておく必要があります。ありがとう。

- 編集 -

使用済みパススルー

$libre = 'python ../../../../root/py/mech.py '.$var1.' '.$var2.'';
$cleanlibre = escapeshellarg($libre);
passthru($cleanlibre, $result);
echo $result;
//returned 127 <- i don't know where thats from.
4

2 に答える 2

2

escapeshellargコマンド全体ではなく、引数をエスケープするためにのみ使用されます。

//usage python my.py var1 var2
$libre = 'python ../../../../root/py/my.py '.escapeshellarg($var1).' '.escapeshellarg($var2).'';
echo exec($libre );
于 2012-11-27T15:12:24.797 に答える
0

execは関数の2番目の引数に結果を返します。http://php.net/manual/en/function.exec.phpを参照してください。

于 2012-11-27T15:09:42.407 に答える