shell_exec和PHP上的exec没有';t返回字符串
我被这个密码弄得头疼:shell_exec和PHP上的exec没有';t返回字符串,php,apache,shell,Php,Apache,Shell,我被这个密码弄得头疼: $data = shell_exec("wget -S --spider http://dkphp.com"); echo "Encoded:" .$data; $data为“空” 我不知道为什么,它对echo的支持如下:(今天花5个小时,但仍然无效:( 我在PHP的交互模式下检查了您的代码片段(PHP-a,从命令行) wget将该信息打印到STDERR,而不是STDOUT 这项工作: $data = shell_exec("wget -S --spider http:
$data = shell_exec("wget -S --spider http://dkphp.com");
echo "Encoded:" .$data;
$data为“空”
我不知道为什么,它对echo的支持如下:(今天花5个小时,但仍然无效:(
我在PHP的交互模式下检查了您的代码片段(
PHP-a
,从命令行)
wget将该信息打印到STDERR,而不是STDOUT
这项工作:
$data = shell_exec("wget -S --spider http://dkphp.com 2>&1");
echo "Encoded:" .$data;
您是否在安全模式下运行PHP?根据PHP手册,如果在安全模式下运行,该命令将被禁用。您能给我发送任何链接以了解STDERR和STDOUT吗?您可能会发现本文很有帮助:。此外,在linux shell中还有重定向流的标准方法。这一方法解释了我在上面的建议,在t STDERR流被重定向到STDOUT流。(shell_exec读取它)
$data = shell_exec("wget -S --spider http://dkphp.com 2>&1");
echo "Encoded:" .$data;