How can I check if a URL exists via PHP?

前端 未结 22 1640
天涯浪人
天涯浪人 2020-11-22 04:13

How do I check if a URL exists (not 404) in PHP?

22条回答
  •  無奈伤痛
    2020-11-22 04:58

    One thing to take into consideration when you check the header for a 404 is the case where a site does not generate a 404 immediately.

    A lot of sites check whether a page exists or not in the PHP/ASP (et cetera) source and forward you to a 404 page. In those cases the header is basically extended by the header of the 404 that is generated. In those cases the 404 error not in the first line of the header, but the tenth.

    $array = get_headers($url);
    $string = $array[0];
    print_r($string) // would generate:
    
    Array ( 
    [0] => HTTP/1.0 301 Moved Permanently 
    [1] => Date: Fri, 09 Nov 2018 16:12:29 GMT 
    [2] => Server: Apache/2.4.34 (FreeBSD) LibreSSL/2.7.4 PHP/7.0.31 
    [3] => X-Powered-By: PHP/7.0.31 
    [4] => Set-Cookie: landing=%2Freed-diffuser-fig-pudding-50; path=/; HttpOnly 
    [5] => Location: /reed-diffuser-fig-pudding-50/ 
    [6] => Content-Length: 0 
    [7] => Connection: close 
    [8] => Content-Type: text/html; charset=utf-8 
    [9] => HTTP/1.0 404 Not Found 
    [10] => Date: Fri, 09 Nov 2018 16:12:29 GMT 
    [11] => Server: Apache/2.4.34 (FreeBSD) LibreSSL/2.7.4 PHP/7.0.31 
    [12] => X-Powered-By: PHP/7.0.31 
    [13] => Set-Cookie: landing=%2Freed-diffuser-fig-pudding-50%2F; path=/; HttpOnly 
    [14] => Connection: close 
    [15] => Content-Type: text/html; charset=utf-8 
    ) 
    

提交回复
热议问题