private function _request($method, $timeout, $headers) { $proxies = array(); $nproxy = count($this->m_proxies); for ($i = 0; $i < count($this->m_urls) && $i < $nproxy; $i++) { $proxies[] = $this->m_proxies[$i]; } $urls = array(); $data = array(); $this->m_mapUrls = array(); foreach ($this->m_urls as $k => $v) { $urls[] = $v["uri"]; $data[] = $v["data"]; $this->m_mapUrls[] = $k; } $result = array(); $http = new HttpMultiple(); $http->setproxy($proxies); if (0 == strcmp("POST", $method)) { $r = $http->post($urls, $data, array($this, '_on_request'), $result, $timeout, $headers); } else { $r = $http->get($urls, array($this, '_on_request'), $result, $timeout, $headers); } // update proxy list(reuse validate proxy) $this->m_proxies = array_values($this->m_proxies); return $r; }
function __CheckNProxy($proxies, $timeout) { $t0 = gettimeofday(true); $urls = array(); for ($i = 0; $i < count($proxies); $i++) { $urls[] = "http://www.pingshu8.com/music/newzj.htm"; } $result = array(); $http = new HttpMultiple(); $http->setproxy($proxies); $http->get($urls, '__OnCheckProxy', &$result, $timeout); $r = array(); foreach ($result as $j) { $r[] = $proxies[$j]; } $t1 = gettimeofday(true); echo "time: " . ($t1 - $t0) . "\r\n"; print_r("result: " . count($r) . "\r\n"); return $r; }