Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonywanie kilku operacji jednoczesnie
Forum PHP.pl > Forum > PHP
inwob
Witam!
Posiadam skrypt sprawdzający zmiany na stronach.
Niestety jest on powolny ponieważ strony sprawdza po kolei zamiast jednocześnie.
Wygląda on mniej więcej tak
  1. <?php
  2. $strony = 'http://1.pl/
  3. strona2.pl/
  4. ...
  5. strona2000.pl';
  6. foreach($strony as $strona) {
  7. curl (tutaj wlasciwosci strony);
  8. $zlap = curl_init;
  9. $zapiszdopliku;
  10. }


Czy nie dałoby się zrobić aby w jednakowym czasie było pobierane np 100 stron?
Pozdrawiam!
wookieb
curl_multi_init
inwob
Ok super tego szukałem winksmiley.jpg
A tak korzystając z okazji.
Mam
  1. do {
  2. usleep(10000);
  3. $strona .= curl_multi_exec($mh,$running);
  4. } while ($running > 0);

Skrypt jest wykonywany w trybie console (linux).
I cały czas pokazuje strony które pobiera.
Jak zrobić zeby nie wyświetlało pobranych stron (zawartości ich) w oknie konsoli.
Pozdrawiam!
wookieb
Po prostu tego nie wyświetlaj snitch.gif
inwob
Ale nigdzie nie dałem opcji echo ani nic jest tylko zmienna i wklejanie do pliku.
  1. foreach($tablica as $strona => $wartosc) {
  2. $j++;
  3. $ch[$j] = curl_init();
  4. curl_setopt($ch[$j], CURLOPT_URL, "http://strona.pl/");
  5. curl_setopt($ch[$j], CURLOPT_HEADER, 0);
  6. }
  7. $mh = curl_multi_init();
  8. for ($i = 1; $i <= 10; $i++) {
  9. curl_multi_add_handle($mh,$ch[$i]);
  10. }
  11. $stona=null;
  12. $running=null;
  13. do {
  14. usleep(10000);
  15. $strona .= curl_multi_exec($mh,$running);
  16. } while ($running > 0);
  17. file_put_contents('pik.txt',$strona);
  18. curl_multi_close($mh);
  19.  
  20. $tablica = array();
thek
Skoro odpalane jest to w konsoli linuxowej to czemu nie przekierujesz wyjścia programu na /dev/null? smile.gif Mało eleganckie, ale skuteczne biggrin.gif
wookieb
Dodaj jeszcze opcje
  1. curl_setopt($ch[$j], CURLOPT_RETURNTRANSFER, 1);

I powinno być OK.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.