使用exec();在PHP中使用变量

时间:2014-01-07 15:17:52

标签: php arrays debian

我正在尝试在本地Debian服务器上执行命令。代码如下;

if (isset($INPUTdifference)) {


    $counter = count($INPUTdifference);
    for ($i = 0; $i < $counter; $i++) {

        $pkts = $INPUTdifference[$i]["pkts"];
        $bytes = $INPUTdifference[$i]["bytes"];
        $target = $INPUTdifference[$i]["target"];     // = -j 
        $prot = $INPUTdifference[$i]["prot"];        // = -p
        $opt = $INPUTdifference[$i]["opt"];
        $in = $INPUTdifference[$i]["in"];            // = -i
        $out = $INPUTdifference[$i]["out"];         // = -o
        $source = $INPUTdifference[$i]["source"];   // = -s
        $destination = $INPUTdifference[$i]["destination"]; // -d
        //Filter results

        $badOpt;
        if (strcmp($opt, $badOpt)) {
            $opt = "all";
            return $opt;
        }

        // Execute command with parameters acquired from array
        exec("sudo /sbin/iptables -A INPUT -j $target -p $prot -i $in -o $out -s $source -d $destination ");
        echo 'complete yo';
    }
}

如您所见,我正在尝试将数组中的值用于我的exec调用。这些值都经过测试并正确解析。

我尝试执行命令,但它没有在服务器上给我任何反馈/结果。起初它是在讨论我怎么没有正确的参数,但我解决了这个问题。所以它 - 在服务器上执行。我想,这会缩小到语法本身......我在这里错过了一些东西吗?

1 个答案:

答案 0 :(得分:0)

您可能希望直接/ path / to / sudo而不仅仅是sudo。 exec不喜欢有时自己找出路径。