开发者

PHP problem executing from backquotes

I have the following PHP code:

 for($i=1; $i <= 25; $i++){
  开发者_StackOverflow社区      $ifoids = $ifoids." ifPhysAddress.$i "."ifType.$i "."ifSpeed.$i "."ifDescr.$i "."ifOperStatus.$i";
if($i%12==0){
                echo $idoids;
        $rtable=$rtable.`snmpget -Os -Ov -Oe -Oq -Ot -v 1 -c public $ip $ifoids`;
        $ifoids="";
        echo $i.": ".$rtable."</br>";       
}}

The second time that it tries to execut the snmpget command, the values sent of the $ifoid variable are the same as the first time. Although a print() just before the command would print a correct value.


If you run the enclosed example, you should be able to see that $ifoids is being cleared down.

for($i=1; $i <= 25; $i++) {
        $ifoids = $ifoids." ifPhysAddress.$i "."ifType.$i "."ifSpeed.$i "."ifDescr.$i "."ifOperStatus.$i";

        if($i%12==0) {
            $rtable = "snmpget -Os -Ov -Oe -Oq -Ot -v 1 -c public $ip $ifoids";
            $ifoids="";
            echo $i.": ".$rtable."</br>";
        }
}

Example output:

note: line-breaks added for clarity

12: snmpget -Os -Ov -Oe -Oq -Ot -v 1 -c public
ifPhysAddress.1 ifType.1 ifSpeed.1 ifDescr.1 ifOperStatus.1
ifPhysAddress.2 ifType.2 ifSpeed.2 ifDescr.2 ifOperStatus.2
ifPhysAddress.3 ifType.3 ifSpeed.3 ifDescr.3 ifOperStatus.3
ifPhysAddress.4 ifType.4 ifSpeed.4 ifDescr.4 ifOperStatus.4
ifPhysAddress.5 ifType.5 ifSpeed.5 ifDescr.5 ifOperStatus.5
ifPhysAddress.6 ifType.6 ifSpeed.6 ifDescr.6 ifOperStatus.6
ifPhysAddress.7 ifType.7 ifSpeed.7 ifDescr.7 ifOperStatus.7
ifPhysAddress.8 ifType.8 ifSpeed.8 ifDescr.8 ifOperStatus.8
ifPhysAddress.9 ifType.9 ifSpeed.9 ifDescr.9 ifOperStatus.9
ifPhysAddress.10 ifType.10 ifSpeed.10 ifDescr.10 ifOperStatus.10
ifPhysAddress.11 ifType.11 ifSpeed.11 ifDescr.11 ifOperStatus.11
ifPhysAddress.12 ifType.12 ifSpeed.12 ifDescr.12 ifOperStatus.12</br>

24: snmpget -Os -Ov -Oe -Oq -Ot -v 1 -c public
ifPhysAddress.13 ifType.13 ifSpeed.13 ifDescr.13 ifOperStatus.13
ifPhysAddress.14 ifType.14 ifSpeed.14 ifDescr.14 ifOperStatus.14
ifPhysAddress.15 ifType.15 ifSpeed.15 ifDescr.15 ifOperStatus.15
ifPhysAddress.16 ifType.16 ifSpeed.16 ifDescr.16 ifOperStatus.16
ifPhysAddress.17 ifType.17 ifSpeed.17 ifDescr.17 ifOperStatus.17
ifPhysAddress.18 ifType.18 ifSpeed.18 ifDescr.18 ifOperStatus.18
ifPhysAddress.19 ifType.19 ifSpeed.19 ifDescr.19 ifOperStatus.19
ifPhysAddress.20 ifType.20 ifSpeed.20 ifDescr.20 ifOperStatus.20
ifPhysAddress.21 ifType.21 ifSpeed.21 ifDescr.21 ifOperStatus.21
ifPhysAddress.22 ifType.22 ifSpeed.22 ifDescr.22 ifOperStatus.22
ifPhysAddress.23 ifType.23 ifSpeed.23 ifDescr.23 ifOperStatus.23
ifPhysAddress.24 ifType.24 ifSpeed.24 ifDescr.24 ifOperStatus.24</br>


Here is the correct code:

for($i=1; $i <= 25; $i++){
        $ifoids = $ifoids." ifPhysAddress.$i "."ifType.$i "."ifSpeed.$i "."ifDescr.$i "."ifOperStatus.$i";
        if($i%12==0){
            $rtable="snmpget -Os -Ov -Oe -Oq -Ot -v 1 -c public $ip $ifoids";
            $ifoids="";
            echo $i.": ".$rtable."</br>";       
        }
}

it has been reset properly, but because you concatenate $rtable with it self it look like not working

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜