我想用的卷曲的扩展PHP要建立某种形式的载管理和我想如果卷允许实施这些2拥有我想:

1)多个连接,或多件下就像一个正常的桌面应用程序下载经理。

2)不断更新的在屏幕(文本或图形,没关系)下载进展情况。

不CURL for PHP允许任何呢?如果是这样,护理提供一些提示?

有帮助吗?

解决方案

curl_multi_xyz()函数,例如 curl_multi_exec() 允许您同时处理多个请求。如果你想下载,还可以看看 CURLOPT_RANGE 并行的同一文件的多个部分。 您可以使用 CURLOPT_READFUNCTION 和<设置回调函数a href =“http://docs.php.net/function.curl-setopt”rel =“nofollow noreferrer”> CURLOPT_WRITEFUNCTION 将允许您发送某种进度数据到客户。

其他提示

对所有"PHP不是大多任务"批评:

退后一步,并认为你有一个很棒的多线程的框架在你的处置,如果你是在灯的环境。使用这座建筑对你有好处-即Apache是多线程经理和一个该死的好的一个。

这是非常容易设置PHP工作,在这种环境。

  1. 设置max_execution_time=0到允许脚本运行indefinatly
  2. 设置ignore_user_abort=true以允许脚本运行,即使后 客户已经终止

设计轻重单个任务的其他网络服务。设计它们以这样一种方式,你不关心,当他们返回,如在队列中型系统。书面形式向队列是线的安全和消除从队列是线安全,如果做了一些基本的操作系统级别的互斥体。

"分解"网服务很简单,因为开文件:

fclose(fopen("http://somewebservice....php?a1=v1&a2=v2&....")); // Launch a web service and continue...

不只是这种方法多线程,但它是本质上分发。该网络的服务可以是当地的或位于世界各地。PHP肯定不关心。

对于一个基本系统唯一拥有你回来是多线程apache允许。否则你的代码是准备利用的负载平衡和所有其他整洁的技巧,高级Apache实现中提供的。

往往在开发认为,"多线"他们认为"哦我们到处理叉和执行董事和等待和Pid".如果你设计的系统方式-你是对的,它变得非常复杂,非常迅速。退后一步,使用什么定。你有访问的目录?繁荣-你得排队。你可以问题的网的电话?繁荣-你已经有了一个多螺纹(分)应用程序。现在只是合并的概念一起作为你的应用程序的规定。

PHP不是多线程的,如果你试图通过多个文件调用或分叉来强制它,结果通常是次优的。我建议不要这样,但是,有可能用js,php的混合做这样的事情(可能不是卷曲但是自定义的php 文件流)和长期投票

有可能,请看一下curl_multi_init();

不,不是这种情况。这是不可能的,因为下载管理器调用处理下载5次的类 - 即PHP类实例。

这是一个示例类调用:

$tr = new teConnections();
$data = $tr->downloadManager(array('http', 'host', path', 'login', 'pass', 'port'), 'file name, compression, streaming); 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top