2014-10-29 5 views
1

Я пытаюсь получить данные с URL-адреса, используя curl. Я сделал рекурсивную функцию для этого. я получаю данные успешно, но проблема, с которой я столкнулся, заключается в том, что, когда результат не встречается при вызове curl, тогда страница ничего мне не показывает, отображается только пустая страница. Я также использовал var_dump() для тестирования ответа. но ничего не нашел.curl response показывая ничего, используя php

вот моя рекурсивная функция

function recursive_get_scrap($offset, $page_size, $urls, $original_array){ 

    ini_set('max_execution_time', 1800); 
    $of_set = $offset; 
    $pg_size = $page_size; 

    $off_sets = 'offset='.$of_set.'&page_size='.$pg_size.''; 
    $url = $urls.$off_sets;   

    $last_correct_array = $original_array; 

    $ch1 = curl_init(); 
    // Disable SSL verification 
    curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false); 
    // Will return the response, if false it print the response 
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);   

    curl_setopt($ch1, CURLOPT_HEADER, 0); 
    curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, 1); 

    curl_setopt($ch1, CURLOPT_URL,$url); 
    // Execute 
    $result2 = curl_exec($ch1); 

    $info = curl_getinfo($ch1); 

    if(curl_errno($ch1)) 
     { 
      echo 'error:' . curl_error($ch1); 
      //return $last_correct_array; 
     } 


    // Closing  
    curl_close($ch1); 



    if(!$result2 || strlen(trim($result2)) == 0 || $result2 == false){ 

     echo 'no array'; 
    } 

    if(isset($result2) && !empty($result2)){ 

     echo 'in recursive function <br>'; 
     $a1 = json_decode($original_array, true); 
      $a2 = json_decode($result2, true);     


       $temp_array = array_merge_recursive($a1, $a2);     

       $last_correct_array = $temp_array; 
       $offset += 100; 
       $page_size = 100; 

       recursive_get_scrap($offset, $page_size, $urls, json_encode($last_correct_array));             
    } 


} 

теперь, что я хочу, это только то, что если отметить, получить от завитка вызова, то no array сообщение должно отображаться.

+0

Какой URL у вас возникли проблемы? – mudasobwa

+0

попробуйте 'var_dump()' $ info – dyachenko

+0

Вполне возможно, что вы просто не получите никакого тела ответа, и это нормально с помощью curl ... –

ответ

0

Используйте эту опцию для curl_setopt():

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

Это заставит curl_exec вернуть данные вместо того, чтобы выводить его.

Чтобы увидеть, если она была успешной, то вы можете проверить $ результат, а также

curl_error(). 
+0

Я использовал его уже. curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); вы можете видеть, что в моем коде – saadk

+0

вы можете указать свой URL-адрес –

Смежные вопросы