• 12-09-2022, 19:02:57
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar,

    daha önce yapmıştım ancak şimdi nasıl yaptığımı unuttum mutli curl ile örnek a, b , c sitelerini çekebiliyordum örnek a sitesine bir değer veriyordum [0] [1] [2] yaptığım da 3 site ayrı ayrı geliyordu bu konuda bilgisi olan var mı acaba ? birden fazla siteyi nasıl çekebilirim.
  • 12-09-2022, 19:09:30
    #2
    siteleri array içine alıp foreach ile döndürebilirsin
  • 12-09-2022, 19:14:56
    #3
    Üyeliği durduruldu
    erkantalhaboz adlı üyeden alıntı: mesajı görüntüle
    siteleri array içine alıp foreach ile döndürebilirsin
    aşağıdaki gibi bir kodum var hocam yardımcı olur musun bir örnekle devamını ben yapabilirim

    function __mcUrl($urls = []){
        if( is_array($urls) && count($urls) > 0 ){
     
            $mcurl    = curl_multi_init();
            $curl_opt = array(
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_MAXREDIRS      => 1,
                CURLOPT_FOLLOWLOCATION => 0,
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_CONNECTTIMEOUT => 20,
                CURLOPT_TIMEOUT        => 20,
                CURLOPT_ENCODING       => '',
                CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST  => 'GET',
                CURLOPT_HTTPHEADER     => ['accept-language: en', 'cache-control: no-cache'],
            );
     
            foreach ($urls as $key => $url) {
                $curl[$key] = curl_init();
                curl_setopt_array($curl[$key], $curl_opt);
                curl_setopt($curl[$key], CURLOPT_URL, $url);
     
                curl_multi_add_handle($mcurl, $curl[$key]);
            }
     
            $mcurl_run = null;
            do{
                curl_multi_exec($mcurl, $mcurl_run);
            }while ( $mcurl_run > 0 );
     
            $items = [];
     
            foreach ($urls as $key => $url) {
                $url_error = curl_error($curl[$key]);
                $url_data  = curl_multi_getcontent($curl[$key]);
     
                $items[$key] = (object)array(
                    'status' => $url_data && empty($url_error) ? true : false,
                    'key'    => $key,
                    'url'    => $url,
                    'error'  => $url_error,
                    'data'   => $url_error ? '' : $url_data,
                    );
     
                curl_multi_remove_handle($mcurl, $curl[$key]);
            }
     
            curl_multi_close($mcurl);
     
            return (object)$items;
        }
        return false;
    }
  • 12-09-2022, 19:16:16
    #4
    Eve gidince bakayım
  • 12-09-2022, 19:16:50
    #5
    Üyeliği durduruldu
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Eve gidince bakayım

    her zaman dönüp buluyorsun beni he
  • 12-09-2022, 19:18:45
    #6
    Proffice adlı üyeden alıntı: mesajı görüntüle
    her zaman dönüp buluyorsun beni he
    Öyle denk geliyor canım benim
  • 12-09-2022, 19:19:32
    #7
    Üyeliği durduruldu
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Öyle denk geliyor canım benim
    alırım bi h.o
  • 12-09-2022, 19:25:26
    #8
    Üyeliği durduruldu
    çözdüm birinin ihtiyacı olursa diye paylaşayım kodları

    function multi_thread_curl($urlArray, $optionArray, $nThreads) {
    
        $curlArray = array_chunk($urlArray, $nThreads, $preserve_keys = true);
        $ch = 'ch_';
        foreach($curlArray as $threads) {      
        foreach($threads as $thread=>$value) {
        ${$ch . $thread} = curl_init();
        curl_setopt_array(${$ch . $thread}, $optionArray);  
        curl_setopt(${$ch . $thread}, CURLOPT_URL, $value);  
        }
          $mh = curl_multi_init();
          foreach($threads as $thread=>$value) {
          curl_multi_add_handle($mh, ${$ch . $thread});
          }
          $active = null;
          do {
          $mrc = curl_multi_exec($mh, $active);
          } while ($mrc == CURLM_CALL_MULTI_PERFORM);
          while ($active && $mrc == CURLM_OK) {
          if (curl_multi_select($mh) != -1) {
           do {
         $mrc = curl_multi_exec($mh, $active);
          } while ($mrc == CURLM_CALL_MULTI_PERFORM);
                }
            }
            foreach($threads as $thread=>$value) {
            $results[$thread] = curl_multi_getcontent(${$ch . $thread});
            }
            curl_multi_close($mh);
                }  
        return $results;
      
    }
  • 14-09-2022, 17:21:55
    #9
    Proffice adlı üyeden alıntı: mesajı görüntüle
    çözdüm birinin ihtiyacı olursa diye paylaşayım kodları

    function multi_thread_curl($urlArray, $optionArray, $nThreads) {
    
        $curlArray = array_chunk($urlArray, $nThreads, $preserve_keys = true);
        $ch = 'ch_';
        foreach($curlArray as $threads) {      
        foreach($threads as $thread=>$value) {
        ${$ch . $thread} = curl_init();
        curl_setopt_array(${$ch . $thread}, $optionArray);  
        curl_setopt(${$ch . $thread}, CURLOPT_URL, $value);  
        }
          $mh = curl_multi_init();
          foreach($threads as $thread=>$value) {
          curl_multi_add_handle($mh, ${$ch . $thread});
          }
          $active = null;
          do {
          $mrc = curl_multi_exec($mh, $active);
          } while ($mrc == CURLM_CALL_MULTI_PERFORM);
          while ($active && $mrc == CURLM_OK) {
          if (curl_multi_select($mh) != -1) {
           do {
         $mrc = curl_multi_exec($mh, $active);
          } while ($mrc == CURLM_CALL_MULTI_PERFORM);
                }
            }
            foreach($threads as $thread=>$value) {
            $results[$thread] = curl_multi_getcontent(${$ch . $thread});
            }
            curl_multi_close($mh);
                }  
        return $results;
      
    }
    bir örnekle paylaşabilir misiniz hocam. mesela şu 2 sayfaya bağlanıp titlerini alsın

    https://www.r10.net/djital-urunler-acik-arttirma/3364233-128142-sizlere-google-dan-para-kazandiracak-checklist-1tl-den-gidiyor.html

    https://www.r10.net/bozdurma-exchange-islemleri/3364232-paypal-bozum-isleriniz-yapilir.html