span style="color: #0000BB"><?phprequire '../vendor/autoload.php';function getLinks($links) { $results_data = array(); $async_func = array(); $loop = React\EventLoop\Factory::create(); $dnsResolverFactory = new React\Dns\Resolver\Factory(); $dnsResolver = $dnsResolverFactory->createCached('127.0.0.1', $loop); $factory = new React\HttpClient\Factory(); $client = $factory->create($loop, $dnsResolver); foreach ($links as $k=>$link) { $request = $client->request('GET', $link['url']); $request->on('response', function ($response) use (&$results_data, $k, &$links) { $data = ''; $response->on('data', function ($d) use (&$data) { $data .= $d; }); $response->on('end', function () use (&$data, &$results_data, $k, &$links) { $results_data[$k] = ( isset($links[$k]['callback']) && function_exists($links[$k]['callback']) ) ? $links[$k]['callback']($data) : $data; }); }); $request->end(); } $loop->run(); return $results_data; }function parsingYoutube($data, $error = null) { return 'this youtube parser. Length data ' . strlen($data);}function parsingGoogle($data, $error = null) { return 'this google parser. Length data ' . strlen($data);}$links = array();$links[] = array('url'=> 'http://www.youtube.com', 'callback'=> @parsingYoutube);$links[] = array('url'=> 'http://www.google.com.ua', 'callback'=> @parsingGoogle);//$links[] = array('url'=> 'http://wapinet.ru/forum/');$t = microtime(true);var_dump(getLinks($links));echo microtime(true) - $t; |