Merhaba arkadaşlar,
ben 5 siteden birden veri çekmem gerekiyor aynı anda ama array içine alınca hata alıyorum curl ile 5 sitenin linkini birden nasıl ekrana getireiblirim ?
curl ile birden fazla veriyi getirme
5
●62
- 14-01-2021, 14:47:46Proffice adlı üyeden alıntı: mesajı görüntüle
array içine siteleri aldığınızı varsayalım
foreach ya da for döngüsü ile curl un her siteye tek tek bağlanması gerekli
örnek olarak
$site1_verisi=curl ($site1);
$site2_verisi=curl ($site2);
gibi gibi yapıp daha sonra verileri $site1_verisi içerisinden alıp işleyebilirsiniz
tam olarak kullandığınız koduda eklerseniz daha net dönüşler alabilirsiniz - 14-01-2021, 14:50:46diray67 adlı üyeden alıntı: mesajı görüntüle
bunun için ise Curl kodumda şu
<?php function Baglan($url){ $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); $cikti = curl_exec($curl); curl_close($curl); return str_replace(array("\n","\t","\r"), null, $cikti); } ?>
if(isset($_POST['arama'])){ $aranan=$_POST['aranan']; $arat = baglan("https://www.demo.net/index.php?s=$aranan","https://www.demo2.top/?ara=$aranan","https://www.demo3.com/?s=$aranan"); }
şöyle bi kod var şimdi burada 3 siteye bağlanmam lazım ama ilk siteyi getiriyor diğerlerini getirmiyor foreach de denedim ama olmadı tekrar bi deneyim yani bana burada s= sonra ki tagları aramadan ekrana getirip değişilik yapmam lazım ama hepsini tek çatıda en son nasıl toplayacağımı anlamadım açıkcası - 14-01-2021, 15:10:12Ruxy adlı üyeden alıntı: mesajı görüntüle
buyrun: https://www.php.net/manual/tr/functi...multi-init.php - 14-01-2021, 16:13:17br gün buraya biri gelir buna ihtiyacı olursa diye anlatıyorum yaptım 1 den fazla url çekmek isterseniz bu şekilde yapabilirsiniz
<?php function multi_thread_curl($url_array, $number_threads) { $curl_array = array_chunk($url_array, $number_threads, $preserve_keys = true); foreach($curl_array as $threads) { foreach($threads as $key=>$value) { ${'ch' . $key} = curl_init(); curl_setopt(${'ch' . $key}, CURLOPT_URL, $value); curl_setopt(${'ch' . $key}, CURLOPT_SSL_VERIFYPEER, false); curl_setopt(${'ch' . $key}, CURLOPT_RETURNTRANSFER, true); curl_setopt(${'ch' . $key}, CURLOPT_TIMEOUT, 10); } $mh = curl_multi_init(); curl_multi_add_handle($mh, ${'ch' . $key}); } $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 $key=>$value) { $results[$key] = curl_multi_getcontent(${'ch' . $key}); curl_multi_remove_handle($mh, ${'ch' . $key}); } . curl_multi_close($mh); } return $results; } ?>