ssh2_exec命令中的PHP变量

时间:2017-03-01 14:38:35

标签: php ssh ssh2-exec

我将带有IP地址的变量放入ssh2命令时遇到问题。

$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:<

1 个答案:

答案 0 :(得分:0)

问题是,当我通过ssh2_exec从SSH2获取IP数据时,字符串的最后一个字符是我必须使用$newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);删除的空白字符

之后,一切都很有效。