Home  >  Article  >  Backend Development  >  PHP get_headers method to detect whether remote files exist

PHP get_headers method to detect whether remote files exist

WBOY
WBOYOriginal
2016-07-25 08:56:041177browse
  1. $url = 'http://example.com';
  2. $hander_array = get_headers ( $url );
  3. if ($header_array [0] == 'HTTP/1.1 200 OK' ) {
  4. echo 'File exists';
  5. } else {
  6. echo 'File does not exist';
  7. }
Copy code

Instructions: The function of get_headers function: when accessing a remote address, return the HTTP headers sent by the server in the form of an array. And $header[0] is the status code returned by the server (the status code is usually the first one returned). Therefore, to determine that a file exists on the remote server, you only need to make sure that the status code returned by accessing the file is "HTTP/1.1 200 OK". It can also be determined that the status code is not "HTTP/1.1 404 Not Found", and the answer to the existence of the file can also be given.

I will share two more examples of get_headers function below for your reference.

1. Example of obtaining three-digit HTTP response code:

  1. function get_http_response_code($theURL) {
  2. $headers = get_headers($theURL);
  3. return substr($headers[0], 9, 3);
  4. }
  5. ?>
Copy code

2, example of excluding redirection:

  1. /**
  2. * Get headers without redirects
  3. * by bbs.it-home.org
  4. */
  5. function get_real_headers($url,$format=0,$follow_redirect=0) {
  6. if (!$follow_redirect) {
  7. //set new default options
  8. $opts = array('http' =>
  9. array('max_redirects'=>1,'ignore_errors'=>1)
  10. );
  11. stream_context_get_default($opts);
  12. }
  13. //get headers
  14. $headers=get_headers($url,$format);
  15. //restore default options
  16. if (isset($opts)) {
  17. $opts = array('http' =>
  18. array('max_redirects'=> ;20,'ignore_errors'=>0)
  19. );
  20. stream_context_get_default($opts);
  21. }
  22. //return
  23. return $headers;
  24. }
  25. ?>
Copy code

Attach, php get_headers ()

get_headers (PHP 5)

get_headers — Get all headers sent by the server in response to an HTTP request

Instructions array get_headers ( string $url [, int $format ] ) get_headers() returns an array containing the headers sent by the server in response to an HTTP request. If it fails, it returns FALSE and issues an E_WARNING level error message.

If the optional format parameter is set to 1, get_headers() will parse the corresponding information and set the key name of the array.

Instructions: Since PHP 5.1.3 this function uses the default stream context, which can be set and modified using the stream_context_get_default() function.

Example of get_headers():

  1. $url = 'http://bbs.it-home.org';
  2. print_r(get_headers($url));
  3. print_r(get_headers($url, 1));
  4. ?>
Copy the code

The output is similar to:

Array ( [0] => HTTP/1.1 200 OK [1] => Date: Sat, 29 May 2004 12:28:13 GMT [2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT [4] => ETag: "3f80f-1b6-3e1cb03b" [5] => Accept-Ranges: bytes [6] => Content-Length: 438 [7] => Connection: close [8] => Content-Type: text/html )

Array ( [0] => HTTP/1.1 200 OK [Date] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html )



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn