$ch=curl_init() or dIE("ERROR|<b>Error:</b> cURL Error");curl_setopt($ch,CURLOPT_URL,$c);curl_setopt($ch,CURLOPT_FolLOWLOCATION,TRUE);curl_setopt($ch,CURLOPT_file,$fp);//####################################################//// This is required to curl give us some progress// if this is not set to false the progress function never// gets calledcurl_setopt($ch,CURLOPT_nopROGRESS,false);// Set up the callbackcurl_setopt($ch,CURLOPT_PROGRESSFUNCTION,'callback');// Big buffer less progress info/callbacks// Small buffer more progress info/callbackscurl_setopt($ch,CURLOPT_BUFFERSIZE,128);//####################################################//curl_exec($ch);curl_close($ch);fclose($fp);
回调函数:
function callback($download_size,$downloaded,$upload_size,$uploaded){ $percent=$downloaded/$download_size; // Do something with $percent echo "$percent"; }
现在,我从PHP网站上直接复制粘贴了这个例子,但这不起作用?我的PHP版本是5.2.11,请.提出什么可能是错的?
编辑:我从另一个脚本调用这个PHP脚本.
信息:我坚持5.2.X分支,因为我的网络主机说cPanel不支持5.3.x分支,任何解决方案?
解决方法 在PHP 5.3之前似乎没有CURLOPT_PROGRESSFUNCTION.看看http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?view=log,你会发现两个条目 – [DOC] MFH:#41712,实现进度回调.一个用于PHP5.3,另一个用于PHP6分支.
编辑:使用PHP 5.2.x,您应该可以设置stream_notification_callback
function foo() { $args = func_get_args(); echo join(',',$args),"\n";}$ctx = stream_context_create(null,array('notification' =>'foo'));$fpIn = fopen('http://PHP.net/','rb',false,$ctx);file_put_contents('localfile.txt',$fpIn);总结
以上是内存溢出为你收集整理的cURL下载PHP的进展不起作用?全部内容,希望文章能够帮你解决cURL下载PHP的进展不起作用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)