Javascript或PHP中的Linux命令

时间:2009-07-26 02:15:56

标签: php linux shellexecute

我有一个linux命令行,我需要用PHP或Javascript(PHP首选。)执行。

命令是

keygen AB3554C1D1971DB7 \pc_code 365

但是,我想用{pccode}替换\pc_code字符串,用户输入生成的PC代码。这是一个合法的项目,但是对程序的创建者有问题给我帮助。

请帮忙!

4 个答案:

答案 0 :(得分:5)

您可以使用shell_exec()

$cmd = sprintf("keygen AB3554C1D1971DB7 %s 365", 
               escapeshellarg($pccode));
$result = shell_exec($cmd);

每当执行外部命令时,都必须非常小心以避免命令注入。您可以使用escapeshellarg()阻止此操作。

答案 1 :(得分:1)

查看exec

答案 2 :(得分:1)

可能是这个程序写得不好并将其信息输出到stderr而不是stdout。或者它可能是失败并且(正确地)将错误消息打印到stderr。在任何一种情况下,shell_exec都不会捕获stderr。但是,您应该能够通过在命令末尾添加“2>&1”来捕获stderr,例如:

$result = shell_exec('keygen AB3554C1D1971DB7 \pc_code 365 2>&1');
echo '<pre>'.htmlspecialchars($result).'</pre>';

修改:为了保持连续性,解决问题的是下面另一个答案的评论中提到的内容:

  

也许它不喜欢裸露的反斜杠?你可以尝试“\\pc_code

答案 3 :(得分:0)

JavaScript实际上不可能执行Linux命令(也不应该)。假设您指的是在客户端的Web浏览器上运行的JavaScript,那么就没有安全模型可以保护人们免受恶意命令行访问。 PHP是另一回事。