How to check any website status using PHP

May 15th, 2011 by Tony de Jesus

Sometimes we need a tool able to monitor the activity and status of a specific website. For example, in this blog, I have the Sites of the Week series that displays the best websites that I’ve found in the week. I don’t want my readers to click on one of those links and get an error page. What would they think about me? So, I need a service or tool to check all my sites of the week status and then notify me when any of them are down.

There are lots of services over the web where you can pay to have a website monitored and be notified when it’s down. However, they are making good money for a service that you can easily offer to yourself with minimum effort. I’m going to show you an easy to use function that will allow you to check if a website is down. This function is written in PHP and uses cURL library to get the website’s status.

  * Function to check a website status
  * @param string url the url of the website to test
  * @return boolean true if the site is up, false otherwise

function checkStatus($url){
     $agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; pt-pt) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";

     // initializes curl session

     // sets the URL to fetch
     curl_setopt ($ch, CURLOPT_URL,$url );

     // sets the content of the User-Agent header
     curl_setopt($ch, CURLOPT_USERAGENT, $agent);

     // return the transfer as a string
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

     // disable output verbose information
     curl_setopt ($ch,CURLOPT_VERBOSE,false);

     // max number of seconds to allow cURL function to execute
     curl_setopt($ch, CURLOPT_TIMEOUT, 5);


     // get HTTP response code
     $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


     if($httpcode>=200 && $httpcode<300)
          return true;
          return false;

Example of use

     echo "Website is up";
     echo "Website is down";

, ,



  1. Francisco

    great code, Thanks

  2. Antonio


    Thank you man!

  3. nato

    Thanks actually works

  4. Great code! Just what I was looking for!!


Leave a Reply to Francisco