Merhabalar,
Php ile rapidapi üzerinden veriler çekmekteyiz, 1 saniyede 1 istek hakkımız var ancak sistem bazen çok hızlı çalışınca saniyede 2-3 istekde bulunuyor bu sefer veriler aksıyor.
Bu yüzden bir sorgu eklemek istiyoruz 3 saniyede 1 istek gibi.
Ücretiyle yardımcı olabilecek var ise pm atabilir.
Php Api'ye saniyede sorgu zamanı eklenecektir
11
●316
- 03-02-2023, 19:16:00Kodumuz aşağıdaki gibidir yardımcı olabilir misiniz acaba?coderutd adlı üyeden alıntı: mesajı görüntüle
İlginize teşekkür ederim
<?php set_time_limit(0); ini_set('max_execution_time','0'); ini_set('memory_limit','1000000000000M'); $db = new PDO("mysql:host=localhost;dbname=wixirne1_link;charset=utf8mb4", "wixirne1_link", "xxxxxxx%"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); function OzelKarakterTemizle($veri) { $veri =str_replace("`","",$veri); $veri =str_replace("=","",$veri); $veri =str_replace("&","",$veri); $veri =str_replace("%","",$veri); $veri =str_replace("!","",$veri); $veri =str_replace("#","",$veri); $veri =str_replace("<","",$veri); $veri =str_replace(">","",$veri); $veri =str_replace("*","",$veri); $veri =str_replace("And","",$veri); $veri =str_replace("'","",$veri); $veri =str_replace("chr(34)","",$veri); $veri =str_replace("chr(39)","",$veri); return $veri; } function instagram($username){ $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://instagram-profile1.p.rapidapi.com/getprofile/".$username, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-RapidAPI-Host: instagram-profile1.p.rapidapi.com", "X-RapidAPI-Key: xxxxxxx" ], ]); $response = curl_exec($curl); curl_close($curl); $json = json_decode($response, true); return $json; } $query = $db->query("SELECT * FROM instagram WHERE api='off' LIMIT 199"); foreach($query->fetchAll() as $data){ $username = $data["kullanici_adi"]; $ID = $data["id"]; $api = instagram($username); sleep(1); $follower = $api["followers"]; @$dataedrfwer = file_get_contents($api["profile_pic_url_hd_proxy"]); $image = 'data:image/jpeg;base64,' . base64_encode($dataedrfwer); $is_business = $api["is_business"]; $is_verified = $api["is_verified"]; $is_private = $api["is_private"]; $category_name = $api["category_name"]; $following = $api["following"]; $bio = OzelKarakterTemizle($api["bio"]); $full_name = OzelKarakterTemizle($api["full_name"]); $media = $api["lastMedia"]["count"]; $db->query("UPDATE instagram SET takipcisayisi='".$follower."', profilresmi='".$image."', is_business='".$is_business."', is_verified='".$is_verified."', is_private='".$is_private."', category_name='".$category_name."', following='".$following."', bio='".$bio."', media='".$media."', full_name='".$full_name."', api='on' WHERE kullanici_adi='".$username."'"); $db->query("INSERT INTO instagram_log(instagram_id, takipcisayi, tarih) VALUES('".$ID."', '".$follower."', '".date('d-m-Y H:i')."')"); - 03-02-2023, 19:22:36
<?php set_time_limit(0); ini_set('max_execution_time','0'); ini_set('memory_limit','1000000000000M'); $db = new PDO("mysql:host=localhost;dbname=wixirne1_link;charset=utf8mb4", "wixirne1_link", "xxxxxxx%"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); function OzelKarakterTemizle($veri) { $veri =str_replace("`","",$veri); $veri =str_replace("=","",$veri); $veri =str_replace("&","",$veri); $veri =str_replace("%","",$veri); $veri =str_replace("!","",$veri); $veri =str_replace("#","",$veri); $veri =str_replace("<","",$veri); $veri =str_replace(">","",$veri); $veri =str_replace("*","",$veri); $veri =str_replace("And","",$veri); $veri =str_replace("'","",$veri); $veri =str_replace("chr(34)","",$veri); $veri =str_replace("chr(39)","",$veri); return $veri; } function instagram($username){ $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://instagram-profile1.p.rapidapi.com/getprofile/".$username, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-RapidAPI-Host: instagram-profile1.p.rapidapi.com", "X-RapidAPI-Key: xxxxxxx" ], ]); $response = curl_exec($curl); curl_close($curl); $json = json_decode($response, true); return $json; } $query = $db->query("SELECT * FROM instagram WHERE api='off' LIMIT 199"); foreach($query->fetchAll() as $data){ sleep(1); $username = $data["kullanici_adi"]; $ID = $data["id"]; $api = instagram($username); $follower = $api["followers"]; @$dataedrfwer = file_get_contents($api["profile_pic_url_hd_proxy"]); $image = 'data:image/jpeg;base64,' . base64_encode($dataedrfwer); $is_business = $api["is_business"]; $is_verified = $api["is_verified"]; $is_private = $api["is_private"]; $category_name = $api["category_name"]; $following = $api["following"]; $bio = OzelKarakterTemizle($api["bio"]); $full_name = OzelKarakterTemizle($api["full_name"]); $media = $api["lastMedia"]["count"]; $db->query("UPDATE instagram SET takipcisayisi='".$follower."', profilresmi='".$image."', is_business='".$is_business."', is_verified='".$is_verified."', is_private='".$is_private."', category_name='".$category_name."', following='".$following."', bio='".$bio."', media='".$media."', full_name='".$full_name."', api='on' WHERE kullanici_adi='".$username."'"); $db->query("INSERT INTO instagram_log(instagram_id, takipcisayi, tarih) VALUES('".$ID."', '".$follower."', '".date('d-m-Y H:i')."')");Kodunuzu bu şekilde güncelleyebilirsiniz - 03-02-2023, 19:22:43Zaten 57. Satıra bahsettiğim sleep(1) fonksiyonu eklenmiş, belki 1 saniye az gelmiş olabilir, sleep(3) olarak değiştirin. Her ne kadar time limit 0 olarak sonsuzlaştırılmış olsa da server ya da local ağınızın maksimum kaç saniye php dosyasını yürütebileceğine emin olarak saniyeyi arttırın. Foreach döngüsü 100 kez dönecekse, 300 saniyelik sleep olacak demektir. Minimum 300 saniye php doayasını çoğu server çalıştırmayacaktır. (Localde iseniz büyük ihtimalle çalışacaktır.)Wixir adlı üyeden alıntı: mesajı görüntüle
- 03-02-2023, 19:42:51max_execution_time değerini 0 girince local veya sunucu farketmiyor hocam, local olsun sunucu olsun saatlerce veri çektiğimi hatırlıyorum. Tabi sunucu kaynaklı farklılıklar olabilir, bu arada arkadaşın eklediği 57. satır iş görmez neden derseniz zaten rapid isteği instagram fonksiyonu ile başlıyor ve o eklenen sleep rapide uğramıyor. Benim attığım şekilde döngünün en başına eklenmesi en doğrusu olacaktırcoderutd adlı üyeden alıntı: mesajı görüntüle
- 03-02-2023, 19:44:10Sizin attığınız kodu denedim ancak 500 hatası verdi bu arada 70. satırda } eksik kopyalanmış onuda ekledim ancak hata veriyoryusok32 adlı üyeden alıntı: mesajı görüntüle
- 03-02-2023, 19:47:29yusok32 adlı üyeden alıntı: mesajı görüntüle
<?php set_time_limit(0); ini_set('max_execution_time','0'); ini_set('memory_limit','1000000000000M'); $db = new PDO("mysql:host=localhost;dbname=wixirne1_link;charset=utf8mb4", "wixirne1_link", "x%"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); function OzelKarakterTemizle($veri) { $veri =str_replace("`","",$veri); $veri =str_replace("=","",$veri); $veri =str_replace("&","",$veri); $veri =str_replace("%","",$veri); $veri =str_replace("!","",$veri); $veri =str_replace("#","",$veri); $veri =str_replace("<","",$veri); $veri =str_replace(">","",$veri); $veri =str_replace("*","",$veri); $veri =str_replace("And","",$veri); $veri =str_replace("'","",$veri); $veri =str_replace("chr(34)","",$veri); $veri =str_replace("chr(39)","",$veri); return $veri; } function instagram($username){ $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://instagram-profile1.p.rapidapi.com/getprofile/".$username, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "X-RapidAPI-Host: instagram-profile1.p.rapidapi.com", "X-RapidAPI-Key: x" ], ]); $response = curl_exec($curl); curl_close($curl); $json = json_decode($response, true); return $json; } $query = $db->query("SELECT * FROM instagram WHERE api='off' LIMIT 200"); foreach($query->fetchAll() as $data){ $username = $data["kullanici_adi"]; $ID = $data["id"]; $api = instagram($username); sleep(5); $follower = $api["followers"]; @$dataedrfwer = file_get_contents($api["profile_pic_url_hd_proxy"]); $image = 'data:image/jpeg;base64,' . base64_encode($dataedrfwer); $is_business = $api["is_business"]; $is_verified = $api["is_verified"]; $is_private = $api["is_private"]; $category_name = $api["category_name"]; $following = $api["following"]; $bio = OzelKarakterTemizle($api["bio"]); $full_name = OzelKarakterTemizle($api["full_name"]); $media = $api["lastMedia"]["count"]; $db->query("UPDATE instagram SET takipcisayisi='".$follower."', profilresmi='".$image."', is_business='".$is_business."', is_verified='".$is_verified."', is_private='".$is_private."', category_name='".$category_name."', following='".$following."', bio='".$bio."', media='".$media."', full_name='".$full_name."', api='on' WHERE kullanici_adi='".$username."'"); $db->query("INSERT INTO instagram_log(instagram_id, takipcisayi, tarih) VALUES('".$ID."', '".$follower."', '".date('d-m-Y H:i')."')"); }
