2013-03-04 3 views
0

같은 도메인에 많은 링크가 있는지 테스트하여 존재 여부를 확인합니다. 나는 다음과 같은 코드를 사용하고 있습니다 : 존재 수백 중,php : HTTP 헤더가 일치하지 않음

function get_http_response_code($url) 
{ 
    $headers = get_headers($url); 
    return substr($headers[0], 9, 3); 
} 

function getURLs() 
{ 
    foreach($allResults as $result) 
    { 
    $tempURL = 'http://www.doma.in/foo/'.$result.'/bar'; 
    if(get_http_response_code($tempURL) != "404" && get_http_response_code($tempURL) != "500") 
    { 
     $URLs[] = $tempURL; 
    } 
    else 
    { 
     echo $tempURL.' could not be reached<br />'; 
    } 
    return $URLs; 
} 
$URLs = getURLs(); 

문제는이다의 $URLs 배열 (404) 존재하지 않는 URL이 포함; 때로는 2, 때로는 4이지만, HTTP/1.0 404 Not Found 오류가 발생할 때마다. 그런 왜 왜? 내가 설정해야하는 타임 아웃이 있습니까? 어떤 도움을 주시면 감사하겠습니다.

+0

로 변경되었습니다. –

+0

감사합니다. 오타 수정되었습니다. 이 코드는 크게 편집되었지만 문제는 여전히 어떻게 설명 했는가? – verbumSapienti

+0

서버 로그의 오류를 볼 수 있습니까? – Wrikken

답변

0

귀하의 코드에서 알 수 있듯이 문제는 변수 실수입니다. $url 시도해보십시오.

... 
foreach($allResults as $result) 
{ 
    $tempURL = 'http://www.doma.in/foo/'.$result['url'].'/bar'; 
... 

$url

은 당신이 당신의 getURLs 기능 범위에 포함되지 $ url 변수가 $result

+0

코드 자체가 작동합니다. HTTP 헤더에 문제가 있습니다. – verbumSapienti

관련 문제