Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Długość działania skryptu, bilioteka curl.
Forum PHP.pl > Forum > Przedszkole
cykcykacz
Witam,
zrobiłem skrpyt, który wyszukuje linki z artykułów.
I sprawdza przy pomocy bilioteki curl, jaki jest HTTP status(czy ma 200, 302, itd.).

  1. function testurl($url) {
  2. $ch = curl_init($url);
  3. //curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  5. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  6. curl_exec($ch);
  7. $info = curl_getinfo($ch);
  8. curl_close($ch);
  9. return $info[http_code];
  10. }


Jak mam tych linków 10, to proces sprawdzania trwa około 10-15 sekund, problem się pojawia jak tych linków jest 500.

Jak można przyspieszyć działanie tego skryptu, albo w jaki sposób sprawdzać "HTTP Status". Tak aby długość skryptu nie działała tak długo?
cykcykacz
Ok,
staram się użyć tej funkcji ale nie wyświetla mi HTTP statusu dla URL, które nie działają lub które mają status 200,

korzystam z takiego skryptu:

  1. $nodes = array('http://www.12aaaaaaaaaa.pl', 'http://www.microsoft.com', 'http://www.rustyrazorblade.com');
  2. $node_count = count($nodes);
  3.  
  4. $curl_arr = array();
  5. $master = curl_multi_init();
  6.  
  7. for($i = 0; $i < $node_count; $i++)
  8. {
  9. $url =$nodes[$i];
  10. $curl_arr[$i] = curl_init($url);
  11. curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
  12.  
  13. curl_multi_add_handle($master, $curl_arr[$i]);
  14. }
  15.  
  16. do {
  17. curl_multi_exec($master,$running);
  18. } while($running > 0);
  19.  
  20. echo "results: ";
  21. for($i = 0; $i < $node_count; $i++)
  22. {
  23. $results = curl_multi_getcontent ( $curl_arr[$i] );
  24. echo( $i . "\n" . $results . "\n");
  25. }
  26. echo 'done';


Da radę wogule wyświetlić status 200 jak URL działa?, i dla nie działających status 0.
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.