【问题标题】:shell_exec and exec on PHP didn't return stringPHP 上的 shell_exec 和 exec 没有返回字符串
【发布时间】:2011-11-27 08:05:39
【问题描述】:

这段代码让我头疼:

$data = shell_exec("wget -S --spider http://dkphp.com");
echo "Encoded:" .$data;

$data 为“NULL”

我不知道为什么,它支持回显类似 :( 今天花了大约 5 个小时,它仍然是 NULL :(

HTTP request sent, awaiting response...
  HTTP/1.0 200 OK
  Date: Thu, 29 Sep 2011 01:31:45 GMT
  Server: LiteSpeed
  Connection: close
  X-Powered-By: PHP/5.3.8
  Set-Cookie: PHPSESSID=50781d657c7632cc1b2e7536d5fa0c50; path=/
  Expires: Thu, 19 Nov 1981 08:52:00 GMT
  Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
  Pragma: no-cache
  content: text/html
  Content-Type: text/html
Length: unspecified [text/html]
200 OK

【问题讨论】:

  • 您是否在安全模式下运行 PHP?如果根据 PHP 手册在安全模式下运行,则该命令被禁用

标签: php apache shell


【解决方案1】:

我在 PHP 的交互模式下检查了你的代码 sn-p(来自命令行的php -a

wget 将该信息打印到 STDERR,而不是 STDOUT。

这行得通:

$data = shell_exec("wget -S --spider http://dkphp.com 2>&1");
echo "Encoded:" .$data;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
相关资源
最近更新 更多