【问题标题】:how to pass argument in php for executing shell command?如何在 php 中传递参数以执行 shell 命令?
【发布时间】:2013-12-16 10:21:13
【问题描述】:

这是下面列出的程序。我正在尝试从 php 运行 shell 命令,所以我编写了以下代码:

<?php    
$argument1 = $argv[1];    
$output = shell_exec('sudo whois ');    
echo "<pre>$output</pre>";    
?> 

但是每次我执行命令时它都会执行但不显示输出。只显示选项。

我在 shell 中的命令是 php filename.php google.com

【问题讨论】:

  • sudo-ing 来自 php 的命令,无法破解密码??

标签: php bash shell


【解决方案1】:

您没有在命令中使用传递的参数。您需要在whois 命令中使用参数:

<?php    
$argument1 = escapeshellarg($argv[1]);  
$output = shell_exec('whois '. $argument1);    
echo "<pre>$output</pre>";    
?>

PS:whois 也可以在没有sudo 的情况下进行调整。

【讨论】:

  • 不要忘记对输入进行外壳转义:-)
  • 感谢@anubhava 的帮助,如果我想从网络而不是命令行调用这些...
  • 只需将上面的脚本替换为:echo "&lt;pre&gt;" . shell_exec('whois '. $_GET['url']) . "&lt;/pre&gt;"; 并将您的脚本称为:http://domain.com/shell.php?url=google.com
  • 是的,我只是尝试实现这些,我有两个 php 页面,其中一个有输入争论和提交按钮的选项,然后当我单击提交按钮时,输出应该重定向到弹出的 php/html 页面..我试过做这些请在这里帮助我
  • 您需要确保在表单操作中使用 GET 方法。还可以创建我上面评论过的脚本,并在运行后以http://domain.com/shell.php?url=google.com 访问直接 URL,然后使用提交按钮和表单转到您的其他脚本。如果没有任何效果,请发布有问题的两个 PHP 脚本,以便我对其进行调试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多