1

次のコードが与えられた場合:

 exec('cmd /c c:\wamp\www\Telnetshutdown.py '.$router);

ルーター変数は正常に渡されます。ただし、次のコードを考えると:

 exec('cmd /c c:\wamp\www\Telnetshutdown.py '.$router.' '.$interface);

また

 exec('cmd /c c:\wamp\www\Telnetshutdown.py '.$router." ".$interface);

また

         $zz=$router.' '.$interface;
 exec('cmd /c c:\wamp\www\Telnetshutdown.py '.$zz);

そしてそれらのより多くの組み合わせ..動作しません! 複数の引数を渡すにはどうすればよいですか?

4

1 に答える 1

2

引数が適切にエスケープされていることを確認するために escapeshellarg を使用してみてください

また、この投稿に基づいてcmd /c "{{exec argument}}"、シェルに渡すときにphpがexecに渡された引数をフレーム化するようです。

これを試して:

exec('c:\wamp\www\Telnetshutdown.py '.escapeshellarg($router).' '.escapeshellarg($interface));
于 2013-06-05T06:05:25.373 に答える