2014-10-10 4 views
1

아래와 같이 URL에서 일부 작업을 수행하고 있습니다.PHP에서 URL 전달 문제

"http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm"

내가 찾을 수 없습니다

$paginationPages=array(); 
$productCount=intval($htmlProductPage->find('div.paging span.itemcount',0)->plaintext); 
if($productCount/16>1){ 
    $pagecount=ceil($productCount/16); 

    for($i=2;$i<=$pagecount;$i++){ 
     $urlSplitArray=explode('.',$productUrl); 
     $urlSplitCount=count($urlSplitArray); 
     $urlSplitArray[$urlSplitCount-2].="[".$i."]"; 
     $paginationPages[]= implode('.',$urlSplitArray)."<br>"; 
    } 
#print_r($paginationPages); 

} 

나는

foreach($paginationPages as $nextUrl){ 
    #$nextUrl="http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm"; 
    $htmlProductPage=file_get_html($nextUrl); 
    foreach($htmlProductPage->find("div.Item") as $element){ //error occurs here 
    echo $element->outertext; 
    } 
} 

변수 $nextUrl이 값을 가지고 더 진행 foreach 문에있는 모든 링크를 얻고있다 요소 div.Item I p 링크를 동적으로 엉덩이. 그러나 for 루프 안에 url을 직접 지정하면 같은 요소를 찾을 수 있습니다. 왜 이런 일이 일어나는거야?

+0

어디서 오류가 발생합니까? 귀하의 코드가'file_get_html'을 (를) 사용하여 페이지를 성공적으로 받고 있습니까? –

+0

@ialarmedalien 내 업데이트 된 질문을 확인하십시오. 오류가 발생한 위치를 언급했습니다. – DharanBro

+0

각 루프에 대한 링크가 주석으로 처리되었습니다. – DharanBro

답변

1

문제로 인해이 문에 발생 :

$paginationPages[]= implode('.',$urlSplitArray)."<br>"; 

에서 print_r $paginationPages의 :

Array 
(
    [0] => http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm<br> 
) 

당신은 다음을 의미 페이지 이름의 끝에서 <br> 요소를 태그하는 이 코드로 페이지를 검색 할 수 없습니다 :

foreach($paginationPages as $nextUrl){ 
    $htmlProductPage=file_get_html($nextUrl); 

내가 sugge 더 이상 file_get_html가 페이지를 파싱하기 전에 페이지를 성공적으로 검색했는지 검사를 추가하여 내용을 다 쳤습니다.

+0

나는 이것이 어리석은 짓이라고 생각합니다. . 감사. – DharanBro

+0

probs 없음. 때로는 다른 사람이 이런 오타를 추적하는 데 걸립니다! –