Why does file_get_contents work with google.com but not with my site? Why does file_get_contents work with google.com but not with my site? django django

Why does file_get_contents work with google.com but not with my site?


For anyone having this problem using PHP Built-in web server (with Laravel in my case), it is caused by your request being blocked by file_get_contents() / curl functions.

Docs of dev server say that

PHP applications will stall if a request is blocked.

Since the PHP built-in server is single threaded, requesting another url on your serverwill halt first request and it gets timed out.

As a solution, you can use proper web server (nginx, apache etc.).

Edit: As of now, I really suggest you to use Laravel Sail as a development environment for PHP projects. It saves you lots of time with setup and configuration of different services (webserver, databases, queues, etc.).


As zub0r pointed out, the built-in PHP server is single threaded. If you do not want to install and configure a web server like nginx, and do not want to use Homestead or Valet, there is another easy solution:

Start another instance of your build-in PHP server with another port and use this in the internal requests of your app.

php -S localhost:8000\\ in another consolephp -S localhost:8001

I use this in my Laravel app when I request some local dummy API via Guzzle and it works fine.