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.
Php multi curl ile birden fazla siteden veri çekmek
9
●208
- 12-09-2022, 19:14:56Üyeliği durdurulduaşağıdaki gibi bir kodum var hocam yardımcı olur musun bir örnekle devamını ben yapabilirimerkantalhaboz adlı üyeden alıntı: mesajı görüntüle
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:50Üyeliği durduruldu
- 12-09-2022, 19:18:45Öyle denk geliyor canım benimProffice adlı üyeden alıntı: mesajı görüntüle
- 12-09-2022, 19:25:26Ü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:55bir örnekle paylaşabilir misiniz hocam. mesela şu 2 sayfaya bağlanıp titlerini alsınProffice adlı üyeden alıntı: mesajı görüntüle
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