Link-Denetleme Multi-Curl ile

0 Cevap php

Bağlantı kodu 200/301/302 sahip olmadığını denetleyen bir Link Checker işlevi bina Im.

Ben Multi-CURL işlevselliği kullanılır ve ben bütün başlıkları, kodlarını, URL yönlendirildi için URL alabilirim i yani yaklaşık 1000 bağlantıları kontrol etmek istiyorum.

Problem Multi-CURL ekleyelim curl_multi_add_handle tüm URL'leri ekleyerek paralel yürütür ve onu alır sonuçlarını döndürür ve geri kalanı görmezden gelmesidir.

Ben döndüm neden başlığından biliyorum ama URL bunu getirdi bilmiyorum. I özel bir idam kolu (curl_multi_info_read ile ilgili bir şey olabilir) karşı İstenen URL bir tanıtıcı var mı?

Kodumu İşte:

$curls = $listofurls;
$curl_arr = array();
          $master = curl_multi_init();

          for($i = 0; $i < $node_count; $i++) {

            $curl_arr[$i] = curl_init($curls[$i][0]);
            curl_setopt($curl_arr[$i],CURLOPT_FRESH_CONNECT,true);
            curl_setopt($curl_arr[$i],CURLOPT_CONNECTTIMEOUT,10);
            curl_setopt($curl_arr[$i],CURLOPT_HEADER,true);
            curl_setopt($curl_arr[$i],CURLOPT_CUSTOMREQUEST,'HEAD');
            curl_setopt($curl_arr[$i],CURLOPT_RETURNTRANSFER,true);
            curl_setopt($curl_arr[$i],CURLOPT_NOBODY,true);
            curl_setopt($curl_arr[$i],CURLOPT_AUTOREFERER, 1);
            curl_setopt($curl_arr[$i],CURLOPT_TIMEOUT,30);

            curl_multi_add_handle($master, $curl_arr[$i]);
          }


          $finalresult = array();

          do{

            curl_multi_exec($master, $running);
            $info = curl_multi_info_read($master);

            if($info['handle']) {
              $finalresult[] = curl_multi_getcontent($info['handle']);
              curl_multi_remove_handle($master, $info['handle']);
            }

          $previousActive = $running;
          }
          while($running > 0);

           curl_multi_close($master);

Help.Thanx teşekkür ederiz.

0 Cevap