2014-04-05 3 views
1

내 get-listing.php 출력에 16 개의 링크가 있고 각 URL에 요청을 보내서 응답을 받으려면 요소 목록을 받아야합니다. 각 URL에 요청을 보낼 때.simple_http_dom - 각 URL에 요청을 보내는 방법

$base1 = "http://testbox.elementfx.com/get-listing.php"; 
$html = file_get_html($base1); 

$links = $html->find('p[id=links] a'); 

foreach ($links as $element) 
{ 
    //open each url in each array 
    $urls[] = $url = $element->href; 
    $data = file_get_html($url); 
} 

위의 코드를 사용하면 각 URL에 9 개의 응답이있는 요청 만 보내집니다. 9 가지 이상의 응답이 있어야합니다.

simple_http_dom을 사용하여 응답을 받기 위해 모든 URL에 요청을 보낼 수있는 방법을 알려주십시오.

foreach ($links as $element) 
{ 
    // This array stack is only necessary if you plan on using it later 
    $urls[] = $url = $element->href; 

    // $opts and $context are optional for specifying options like method 
    $opts = array(
    'http'=>array(
     'method'=>"GET", // "GET" or "POST" 
    ) 
); 
    $context = stream_context_create($opts); 

    // Remove context argument if not using options array 
    $data = file_get_contents($url, false, $context); 

    // ... Do something with $data 
} 

귀하의 다른 옵션이 더 복잡하지만 (더 많은 유연성을 가지고 : 당신의 질문은 이미 구문 분석 한 각 URL에 간단한 요청을 보내고 다시 응답을하는 경우

+0

동일한 'id'를 가진 요소가 두 개 이상 있으므로 웹 표준을 위반하는 것이 문제의 일부일 수 있습니다. 이를 위해'class'를 사용하십시오. – ceejayoz

+0

@ceejayoz 귀하의 조언에 감사드립니다. 응답을 받기 위해 각 URL에 요청을 보낼 수있는 코드를 게시 할 수 있습니까? –

+0

"링크"라는 ID를 가진 단락 안에있는 모든 링크 또는 모든 링크를 찾으십니까? – Ali

답변

0

, file_get_contents 시도 응용 프로그램)에 따라서 Curl입니다 :

foreach ($links as $element) 
{ 
    $urls[] = $url = $element->href; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    // Used for GET request 
    curl_setopt($ch, CURLOPT_POSTFIELDS, null); 
    curl_setopt($ch, CURLOPT_POST, FALSE); 
    curl_setopt($ch, CURLOPT_HTTPGET, TRUE); 
    // Necessary to return data 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $data = curl_exec($ch); 
    curl_close($ch); 

    // ... Do something with $data 
} 

이것은 컬, 위에 링크 된 PHP 웹 사이트() 더 많은 정보를 가지고에 대한 문서의 표면을 긁고있다.

URL에서 반환되는 데이터가 HTML 인 경우 PHP의 DomDocument를 통해 전달 된 데이터를 가져온 다음 구문 분석 할 수 있습니다. PHP의 사이트에서 설명서와 예제를 쉽게 사용할 수 있습니다 (지금 더 많은 링크를 게시 할 수 없습니다. 죄송합니다).

관련 문제