note 116866 added to function.curl-setopt

From: Date: Thu, 12 Mar 2015 16:09:30 +0000
Subject: note 116866 added to function.curl-setopt
Groups: php.notes 
Request: Send a blank email to php-notes+get-201928@lists.php.net to get a copy of this message
Please note that if you want to handle progress using CURLOPT_PROGRESSFUNCTION option, you need to take into consideration what version of PHP are you using. Since version 5.5.0, compatibility-breaking change was introduced in number/order of the arguments passed to the callback function, and cURL resource is now passed as first argument. Prior to version 5.5.0: <?php // ... curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, 'progressCallback'); curl_setopt($resource, CURLOPT_NOPROGRESS, false); // ... function progressCallback($download_size = 0, $downloaded = 0, $upload_size = 0, $uploaded = 0) { // Handle progress } ?> From version 5.5.0: <?php // ... curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, 'progressCallback'); curl_setopt($resource, CURLOPT_NOPROGRESS, false); // ... function progressCallback($resource, $download_size = 0, $downloaded = 0, $upload_size = 0, $uploaded = 0) { // Handle progress } ?> However, if your code needs to be compatible with PHP version both before and after 5.5.0, consider adding a version check: <?php // ... curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, 'progressCallback'); curl_setopt($resource, CURLOPT_NOPROGRESS, false); // ... function progressCallback($resource, $download_size = 0, $downloaded = 0, $upload_size = 0, $uploaded = 0) { /** * $resource parameter was added in version 5.5.0 breaking backwards compatibility; * if we are using PHP version lower than 5.5.0, we need to shift the arguments * @see http://php.net/manual/en/function.curl-setopt.php#refsect1-function.curl-setopt-changelog */ if (version_compare(PHP_VERSION, '5.5.0') < 0) { $uploaded = $upload_size; $upload_size = $downloaded; $downloaded = $download_size; $download_size = $resource; } // Handle progress } ?> ---- Server IP: 72.52.91.14 Probable Submitter: 81.144.234.34 ---- Manual Page -- http://php.net/manual/en/function.curl-setopt.php Edit -- https://master.php.net/note/edit/116866 Del: integrated -- https://master.php.net/note/delete/116866/integrated Del: useless -- https://master.php.net/note/delete/116866/useless Del: bad code -- https://master.php.net/note/delete/116866/bad+code Del: spam -- https://master.php.net/note/delete/116866/spam Del: non-english -- https://master.php.net/note/delete/116866/non-english Del: in docs -- https://master.php.net/note/delete/116866/in+docs Del: other reasons-- https://master.php.net/note/delete/116866 Reject -- https://master.php.net/note/reject/116866 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#201928) next »