Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> curl w tle, po kilkudziesieciu petlach wywala null
shpaque
post 8.03.2021, 12:07:44
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


mam sobie taki multicurl

  1. $count = 1;
  2. foreach ($guests as $g) {
  3. $url = 'http://api.ipstack.com/'.$g['customer']['ip'].'?access_key='.$apiAcessKey.'&output=json';
  4. ${'ch'.$count} = curl_init($url);
  5. curl_setopt(${'ch'.$count}, CURLOPT_RETURNTRANSFER, true);
  6. $count++;
  7. }
  8.  
  9. $mh = curl_multi_init();
  10. $count = 1;
  11. foreach ($guests as $g) {
  12. curl_multi_add_handle($mh, ${'ch'.$count});
  13. $count++;
  14. }
  15.  
  16. $running = null;
  17. do {curl_multi_exec($mh, $running);}
  18. while ($running);
  19.  
  20. $count = 1;
  21. foreach ($guests as $g) {
  22. curl_multi_remove_handle($mh, ${'ch'.$count});
  23. $count++;
  24. }
  25. curl_multi_close($mh);
  26.  
  27. $count = 1;
  28. foreach ($guests as $g) {
  29. ${'response'.$count} = curl_multi_getcontent(${'ch'.$count});
  30. $jsonData[$count] = json_decode(${'response'.$count}, true);
  31. $count++;
  32. }


ktory w pozniejszej petli wywoluje
  1. $thisCustomer = $jsonData[$number];


wszystko niby ok bo robi curla w tle i nie musze czekac az skonczy, bo mam akurat te petle w tabie na ktory norlamnie przechodze w kazdej chwili, problem polega na tym, ze mniej wiecej po 30-40 czaem 50 petlach - czasami robi dziurky i dalej np 70-90 petla jest ok i dalej null, wywala blad null, czyli podczas wywowalania jest komunikat:
  1. Notice: Trying to access array offset on value of type null in /home/shpaque/domains/todar.pl/private_html/templates/pages/adminCustomers.tpl on line 408
  2. (
  3. Notice: Trying to access array offset on value of type null in /home/shpaque/domains/todar.pl/private_html/templates/pages/adminCustomers.tpl on line 408
  4. )


linia 408 to to:
  1. <p class="text-left align-self-center" style="margin-bottom: 0; color: #fff !important;"><?php echo $thisCustomer['city']; ?> <small>(<?php echo $thisCustomer['region_name']; ?>)</small></p>





Go to the top of the page
+Quote Post
nospor
post 8.03.2021, 12:46:17
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No ktorys z response albo nie zwrocil danych albo zwrocil zle dane i nie masz tam nic. To sprawdz czemu tamte response tak sie zachowaly. timeout moze?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
LowiczakPL
post 8.03.2021, 12:53:55
Post #3





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


jeśli operujesz na tablicach a nie jesteś pewien czy na 100% istnieją wszystkie indeksy to stosuj


  1. <p class="text-left align-self-center" style="margin-bottom: 0; color: #fff !important;"><?php echo !empty($thisCustomer['city']) questionmark.gif ''; ?> <small>(<?php echo !empty($thisCustomer['region_name']) questionmark.gif ''; ?>)</small></p>


jesli mie ma wartości to zwróci pusty string, a nie błąd jak w Twoim przypadku

ten znak questionmark.gif to dwa znaki ? tylko inteligentny system forum go podmienia

Ten post edytował LowiczakPL 8.03.2021, 12:59:27


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
shpaque
post 8.03.2021, 14:00:47
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


tak rozumiem, tylko może lepiej zrobić tak jak nospor pisze, z timeoutem, tylko zstanawiam się jak to moze byc zrobione (bo podejrzewam ze tak dziala baselinker) zeby robil petle dalej dopiero jak pobierze dane z obecnej...

znacyz podejrzewam po prostu ze w momencie kiedy generowana jest petla tebeli ktora juz wyswietla wyniki, to curl jest na tej 30-40 pozycji pi pozniej generowanie tabeli z petli "wyprzedza" curla...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 12:37