更新时间:2014-12-03 09:31:48 投稿日期:
本文主要介绍PHP多线程类及其用法,以实例分析多线程类的具体实现方式和应用技巧,并结合下载远程图片的示例进行深入分析
本文说明了 PHP 多线程类及其用法。与您分享以供参考。具体分析如下:
一般来说,PHP多线程可以通过Web服务器实现,当然,对多线程有深刻理解的人都知道,通过Web服务器进行多线程只能模仿多线程的一些效果,而不是真正意义上的多线程
无论哪种方式,它仍然满足我们的一些需求,我们仍然可以在类似多线程的功能方面使用这个类,代码如下:
复制代码 代码如下:
/**
* @title:PHP多线程类()。
* @:1.0
* PHP多线程应用示例:
* '.class.php';
* $ = 新 ();
* $->('','a');
* $->('','b');
* $->('','c');
* $->();
* ($info) {
* $log = '日志/' 。() .“.log”;
* $txt = $info .“rnrn”。'设置在 ' .日期('h:i:s', time()) 。()() .“rn”;
* $fp = fopen($log, 'w');
* ($fp, $txt);
* ($fp);
* }
*/
类 {
var $hooks = 数组();
var $args = 数组();
() {
($func)
$args = ((), 1);
$this->hooks[] = $func;
$this->args[] = $args;
真;
()
if(isset($_GET['标志']))
$flag = ($_GET['flag']);
if($flag || $flag === 0)
($this->钩子[$flag],$this->args[$flag]);
还
for($i = 0, $size = count($this->钩子); $i < $size; $i++)
$fp=($[''],$['']);
如果($fp)
$out = “GET {$['']}?flag=$i HTTP/1.1rn”;
$out .= “主机: {$['']}rn”;
$out .= “: ”;
fputs($fp,$out);
($fp);
要使用它,代码如下:
复制代码 代码如下:
$ = 新 ();
$->('func1','信息1');
$->('func2','信息2');
$->('func3','信息3');
$->();
描述:
() 是添加线程的函数,第一个参数是函数名,后面的参数(可选)是传递给指定函数的参数
() 是执行线程的函数
PHP 实例:使用 curl 下载多线程图片
其实PHP用curl来实现一个多线程类,有了这个类,我们也可以用这个类来执行多线程任务,代码如下:
复制代码 代码如下:
类 {
$=数组();
$=数组(
'ER' = > 1, // 结果返回给变量
'' => 0, //是否需要返回HTTP头
'' => 0,//是否需要退货
'ON' => 0, //自动跟踪
'' = > 6//超时。
);
($=30){
(美元);
/*
* 设置网址
* @list阵列
*/
($list=array()){
$this->=$list;
/*
* 设置参数
* @ 数组
*/
($){
$this->=$+$this->;
/*
*执行
* @ 数组
*/
(){
$mh=();
($this-> as $i=>$url){
$conn[$i]=($url);
($this-> as $key => $val){
($conn[$i],('/({1,})/ie','$0',$key),$val);
e($mh,$conn[$i]);
$=假;
做{
$mrc=($mh,$);
}while($mrc == 形式);
while($ 和 $mrc == ){
if(($mh) != -1){
做{
$mrc=($mh,$);
}while($mrc == 形式);
$res=数组();
($this-> as $i => $url){
$res[$i]=t($conn[$i]);
($conn[$i]);
ndle($mh,$conn[$i]);//发布资源
($mh);
$res;
PHP使用多线程下载类示例下载远程镜像,代码如下:
复制代码 代码如下:
$=新 ();
$->(array('','',''));
$a=$->();
$i=1;
($a 为 $v){
$=$i.'.gif';
$fp 2=@fopen($,'a');
($fp 2,$v);
($fp 2);
$i++;
我希望本文中描述的内容对您的PHP编程有所帮助。