cURL下载PHP的进展不起作用?
发布时间:2020-12-14 01:24:44 所属栏目:Linux 来源:网络整理
导读:我是一个 PHP新手,并尝试使用以下方法向现有PHP脚本添加进度条: $ch=curl_init() or die("ERROR|bError:/b cURL Error");curl_setopt($ch,CURLOPT_URL,$c);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);curl_setopt($ch,CURLOPT_FILE,$fp);//############
我是一个
PHP新手,并尝试使用以下方法向现有PHP脚本添加进度条:
$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 called curl_setopt($ch,CURLOPT_NOPROGRESS,false); // Set up the callback curl_setopt($ch,CURLOPT_PROGRESSFUNCTION,'callback'); // Big buffer less progress info/callbacks // Small buffer more progress info/callbacks curl_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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |