2012-08-09 2 views
0

주식 (창고에있는 제품)이있는 제품 (펜, 티셔츠 등)이 거의없는 HTML 페이지의 URL이 있습니다.HTML 페이지에서 "stock_value"를 찾으십시오 - preg_match stuff

제품에 해당하는 특정 SKU_CODE에 대한 재고를 가져와야합니다. 전자 메일을 통해 전자 메일로 말했기 때문에 .CSV/.TXT 또는 Excel 파일에 주식이 없기 때문입니다. 동적 URL에서 HTML을로드하고 preg_match_all과 구문 분석하여 외부 주식을 얻은 다음 특정 제품에 해당하는 내 웹 사이트 페이지에 표시해야합니다.

은행 사이트에서 현재 통화 패리티를 얻는 것과 비슷합니다. 수동으로 코드를 작성하면 웹 사이트에 넣어야합니다.

여기 내 코드는 절반 밖에 안됩니다. 페이지에서 SKU_CODE를 찾을 수 있었지만 주식 값을 찾을 때 print_r을 수행하면 Array()가 표시되고 그 배열의 값을 보류 할 수 없습니다. 아래 코드를 게시합니다.

$ code = 'AP731463-10'; $ code_minimized = 폭발 ("-", $ 코드);

$url_to_get = 'http://www.andapresent.hu/index.php?term_idk_list=4776829&term_idk_l=&filt=&qs='.$code_minimized[0].''; 

function findinside($start, $end, $string) { 
    preg_match_all('/' . preg_quote($start, '/') . '([^\.)]+)'. preg_quote($end, '/').'/i', $string, $m); 
    return $m[1]; 
} 


    $array_lines = file($url_to_get); 
    //echo($array_lines[1654]); 

    $cont = 0; 
    $found_match = 0; 

    while(isset($array_lines[$cont])){ 

     //daca inca nu s-a gasit codul cautat, cauta-l intre <b> </b> 
     //if code we're looking for is not yet found, search between <b> </b> 

     if($found_match==0){ 
      $out = findinside('<b>','</b>', $array_lines[$cont]); 
     } 

     //o data ce s-a gasit, flag set ca sa nu-l mai caute inca o data 
     //once found, set flag $found_match so it will not look for it next time 
     if($out[0]==$code && $found_match==0){ 
      $found_match = 1; 
      echo "Found match : ".$code." = ".$out[0]."<br>"; 
     } 

     //daca e flag-ul gasit e setat, cauta next info (stock-ul) pana il gaseste in $array_lines[$cont] 
     //if flag is already set, look for next info (the stock value of the product) 
     if($found_match==1){ 
      $out_2 = findinside('<td class="szoveg_k" align="center">','</td>', $array_lines[$cont]); 
      echo $out_2; 
     } 


     $cont++; 
    } 

답변

0

HTML 페이지를 한 줄씩 읽고 한 줄씩 검색합니다. 그러나 열려있는 <td>과 마감일 인 </td>을 다른 회선에 표시하려면 어떻게해야합니까? 이것이 당신의 기능이 올바른 결과를 반환하지 않는 이유라고 생각합니다.

그러나 주어진 작업을 통해 XPpath를 사용하여 주가 값을 검색하는 것이 훨씬 더 적절할 것이라고 생각합니다. 이 tutorial을보고 도움이되는지 확인하십시오.