Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>If your running php5 you can use:</p> <pre><code>$url = 'http://www.example.com'; print_r(get_headers($url, 1)); </code></pre> <p>Alternatively with php4 a user has contributed the following:</p> <pre><code>/** This is a modified version of code from "stuart at sixletterwords dot com", at 14-Sep-2005 04:52. This version tries to emulate get_headers() function at PHP4. I think it works fairly well, and is simple. It is not the best emulation available, but it works. Features: - supports (and requires) full URLs. - supports changing of default port in URL. - stops downloading from socket as soon as end-of-headers is detected. Limitations: - only gets the root URL (see line with "GET / HTTP/1.1"). - don't support HTTPS (nor the default HTTPS port). */ if(!function_exists('get_headers')) { function get_headers($url,$format=0) { $url=parse_url($url); $end = "\r\n\r\n"; $fp = fsockopen($url['host'], (empty($url['port'])?80:$url['port']), $errno, $errstr, 30); if ($fp) { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: ".$url['host']."\r\n"; $out .= "Connection: Close\r\n\r\n"; $var = ''; fwrite($fp, $out); while (!feof($fp)) { $var.=fgets($fp, 1280); if(strpos($var,$end)) break; } fclose($fp); $var=preg_replace("/\r\n\r\n.*\$/",'',$var); $var=explode("\r\n",$var); if($format) { foreach($var as $i) { if(preg_match('/^([a-zA-Z -]+): +(.*)$/',$i,$parts)) $v[$parts[1]]=$parts[2]; } return $v; } else return $var; } } } </code></pre> <p>Both would have a result similar to:</p> <pre><code>Array ( [0] =&gt; HTTP/1.1 200 OK [Date] =&gt; Sat, 29 May 2004 12:28:14 GMT [Server] =&gt; Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] =&gt; Wed, 08 Jan 2003 23:11:55 GMT [ETag] =&gt; "3f80f-1b6-3e1cb03b" [Accept-Ranges] =&gt; bytes [Content-Length] =&gt; 438 [Connection] =&gt; close [Content-Type] =&gt; text/html ) </code></pre> <p>Therefore you could just check to see that the header response was OK eg:</p> <pre><code>$headers = get_headers($url, 1); if ($headers[0] == 'HTTP/1.1 200 OK') { //valid } if ($headers[0] == 'HTTP/1.1 301 Moved Permanently') { //moved or redirect page } </code></pre> <p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" rel="noreferrer" title="W3C Codes and Definitions">W3C Codes and Definitions</a></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload