Скручиваемый обратный вызов в коде - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть функция обратного вызова для CURLOPT_PROGRESSFUNCTION в codeigniter, как показано ниже:

class download_model extends CI_Model {
function downloadIt($link){

  $targetFile = FCPATH."upload/".basename($link);
  $handle = fopen($targetFile, 'w');

   $ch = curl_init( $link );
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt( $ch, CURLOPT_NOPROGRESS, false );
   curl_setopt( $ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback' );
   curl_setopt( $ch, CURLOPT_FILE, $handle );
   curl_setopt( $ch, CURLOPT_BUFFERSIZE, 2 );
   curl_exec( $ch );
   curl_close($ch);
}

function progressCallback( $params )
{
// params here
}

}

но я получаю ошибку ниже, используя вышеуказанный код:

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение: curl_exec () [function.curl-exec]: Невозможно вызвать CURLOPT_PROGRESSFUNCTION

И если я переместу эту функцию progressCallback () в корневой index.php, она будет работать правильно, каков будет эффективный способ добавить эту функцию в codeigniter, чтобы обратный вызов curl распознал ее? Привет

1 Ответ

3 голосов
/ 08 декабря 2011

Как добавить функцию обратного вызова для собственных функций PHP в Codeigniter.

curl_setopt( $ch, CURLOPT_PROGRESSFUNCTION, array('name_of_controller', 'name_of_function' );

Вот как я это делаю, когда использую такие функции, как usort ();

...