Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Długość działania skryptu, bilioteka curl.
cykcykacz
post
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


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?
Go to the top of the page
+Quote Post
usb2.0
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

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


http://www.php.net/manual/en/function.curl-multi-exec.php
Go to the top of the page
+Quote Post
cykcykacz
post
Post #3





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 15:45