我有一个运行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)
答案 0 :(得分:2)
在PHP中使用escapeshellcmd()
像...这样的东西。
$escaped_command = escapeshellcmd($command);
exec($escaped_command);
或者,您可以使用escapeshellarg()
<?php
echo shell_exec('ls '.escapeshellarg($userdata));