2017-03-01 38 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」它完美的作品。而當我打印一個變量和一個沒有輸出是相同的,所以我不知道最新的問題。

我試過這個PHP SSH2 exec "$"及其沒有幫助和許多其他的東西。 PLX HALP:<

回答

0

的問題是,當我通過ssh2_exec從SSH2了IP的數據,字符串的最後一個字符是一些空白字符,我不得不使用$newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);

之後,一切工作proparly刪除。