Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Многопоточность

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
PATCH
Отправлено: 15 Января, 2012 - 17:15:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




собствено вопрос как правильно организовать много поточность , сам скрипт служит что то вроде ProxyCheker'a
алгоритм таков - берем из текстового файла ip+port прокси ждем 5 секунд на ответ и до тех пор вызываем функцию покудо не проверит все ip в текстовом файле.
1строка = 1 ip+port
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $start_time = microtime();
  3. $start_array = explode(" ",$start_time);
  4. $start_time = $start_array[1] + $start_array[0];
  5.  
  6. $file = file("new.txt");
  7. $fopen_anon = fopen('proxy_list_anonyms.txt','a+');
  8. //$fopen_un=fopen('proxy_list_noanonyms.txt','a+');
  9. //$my_ip = '23';
  10.  
  11. function proxy_proverka($value,$fopen_anon,$my_ip)
  12. {
  13. $site ="http://2ip.ru/";
  14. $ch = curl_init($site);
  15. $headers = array (  
  16.     '(Request-Line): GET /work-serf.php HTTP/1.1',
  17.     'User-Agent: Opera/9.80 (Windows NT 5.1; U; MRA 5.9 (build 4876); ru) Presto/2.10.229 Version/11.60',
  18.     'Accept:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1',
  19.     'Accept-Language:ru-RU,ru;q=0.9,en;q=0.8',
  20.     'Accept-Encoding: identity',
  21.         'Referer: http://seosprint.net/work-serf.php', );
  22. curl_setopt($ch, CURLOPT_PROXY,$value);        
  23. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  24. curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
  25. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  26. $result = curl_exec($ch);
  27. $http_code=curl_getinfo($ch, CURLINFO_HTTP_CODE);
  28. if($http_code==200)
  29. {fwrite($fopen_anon,$value);}
  30. }
  31. foreach ($file as $key=>$value)
  32. {
  33. proxy_proverka($value,$fopen_anon);
  34. }
  35. $filess = file("proxy_list_anonyms.txt");
  36. $counts_annon = count($filess);
  37. $key=$key+1;
  38. $end_time = microtime();
  39. $end_array = explode(" ",$end_time);
  40. $end_time = $end_array[1] + $end_array[0];
  41. $time = $end_time - $start_time;
  42.  
  43. echo("Страница сгенерирована за ".$time." секунд, из ".$key." прокси серверов , рабочих ".$counts_annon);
  44.  
  45.  
  46. ?>

собствено вопрос про многопоточность, ip с портом передаются в функцию в которой собствено и идет проверка на живучесть прокси, однако если в функции написать многопоточность то толку же не будет т.к 1ip+port передается , как сделать так что бы передавался каждому потоку свой ip +port??

(Отредактировано автором: 15 Января, 2012 - 17:16:04)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB