您好,欢迎访问一九零五行业门户网

php多线程thread开发与应用的例子

php多线程的使用,首先需要php5.3以上版本,并安装pthreads php扩展,可以使php真正的支持多线程,扩展如何安装请自行百度.
php扩展下载:https://github.com/krakjoe/pthreads
php手册文档:http://php.net/manual/zh/book.pthreads.php
在安装好扩展之后,就可以运用多线程了,下面贴个通过搜索结果抓取百度网盘内容的代码:
$thread_array_value) { //检查线程是否执行结束 while ($thread_array[$thread_array_key]->isrunning()) { usleep(10); } if ($thread_array[$thread_array_key]->join()) { //如果执行结束,取出结果 $temp = $thread_array[$thread_array_key]->data; if ($temp != null) $infos['res'][] = $temp; } } $infos['pages'] = $ret['pages']; $infos['status'] = 1; } else $infos = null; } else $infos = null; return $infos;}/** * 获取百度搜索结果列表url * * @param string $url * 搜索结果页url * @param int $format * 默认$format=0,获取默认地址;$format=1获取跳转后真实地址 * @return null multitype:array() */function baidusrlinksget($url, $format = 0) { $html = curlload::htmlget($url); // 获取页面 if ($html == null) return null; try { preg_match_all(/url:( ? . *) }/, $html, $rets); // 搜索结果链接筛选 if (!array_key_exists('links', $rets)) // 如果数组中不包含links键名,表示获取失败 return null; $ret = array(); if ($format == 1) { $number = count($rets['links']); for ($i = 0; $i /', $html, $out); unset($out['url'][0]); $number = count($out['url']); for ($i = 1; $i url = $url; } public function run() { if (($url = $this->url)) { $this->data = paninfoget($url); //线程执行方法 } }}?>
其它类似信息

推荐信息