Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

shell_exec and exec on PHP didn't return string

Tags:

shell

php

apache

I got headache by this code:

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

$data is "NULL"

I don't know why, its support to echo something like :( Spend like 5 hours today, and its still 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

1 Answers

I checked your code snippet in PHP's interactive mode (php -a from the command line)

wget prints that information to STDERR, not STDOUT.

This works:

$data = shell_exec("wget -S --spider http://dkphp.com 2>&1");
echo "Encoded:" .$data;
like image 84
MrTrick Avatar answered Mar 14 '26 00:03

MrTrick



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!