如何在PHP中传递系统命令时转义字符

时间:2014-02-04 07:00:43

标签: php

我有一个运行PHP / HTML页面的Linux Web服务器。

    for loop
    {
    $instruction= "I'm constructing the instruction here";
    }
    $instruction = "lspci | grep -i vga | awk '{print $1}' & lspci | grep -i RAID | awk '{print $1}'";
    $result = exec($instruction); `

我无法得到如下的确切输出,

    echo $result
    08:03.0 07:00.0

似乎有些角色必须被转义才能让exec()工作。 我需要逃脱的角色和角色是什么?

注意:

    07:00.0 RAID bus controller: LSI Logic / Symbios Logic LSI MegaSAS 9260 (rev 05)
    08:03.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200eW WPCM450 (rev 0a)

1 个答案:

答案 0 :(得分:2)

在PHP中使用escapeshellcmd()

像...这样的东西。

$escaped_command = escapeshellcmd($command);
exec($escaped_command);

或者,您可以使用escapeshellarg()

<?php
echo shell_exec('ls '.escapeshellarg($userdata));