2017-03-01 11 views
1

IPアドレスを持つ変数をssh2コマンドに入れることに問題があります。ssh2_execコマンドのPHP変数

$somestring = 'ebtables -t filter -A FIREWALL -p IPv4 --ip-src '.$newifaceaddr.' --ip-proto tcp --ip-dport 22 -j ACCEPT'; 
$somevar = ssh2_exec($connection, $somestring); 

コマンドは機能しますが、完全ではありません。 期待される結果は、「-p IPv4 --ip-src 192.168.1.247 --ip-proto tcp --ip-dport 22 -j ACCEPT」ですが、私は何を取得することは、「-p IPv4 --ip-src 192.168.1.247 -j CONTINUE 」である

おかしい事は、私はそれが完璧に動作します。この「ebtables -t filter -A FIREWALL -p IPv4 --ip-src 192.168.1.247 --ip-proto tcp --ip-dport 22 -j ACCEPT」のような変数のない文字列としてコマンドを記述する場合ということです。そして、私は変数で1つを印刷し、出力がない場合は同じであるので、問題は何か分かりません。

私はこれを試しましたPHP SSH2 exec "$"とその助けや他の多くのもの。 HALP PLX:<

答えて

0

問題は、私はssh2_exec経由でSSH2からIPのデータを得たとき、文字列の最後の文字が、そのすべてがproparly働いた後、私は$newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);

を使用して削除する必要がありましたいくつかの空白文字ということでした。