1--TEST-- 2Test curl_opt() function with CURLOPT_WRITEFUNCTION parameter set to a closure 3--CREDITS-- 4? 5TestFest 2009 - AFUP - Jean-Marc Fontaine <jmf@durcommefaire.net> 6--SKIPIF-- 7<?php 8if (!extension_loaded("curl")) exit("skip curl extension not loaded"); 9if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined"); 10?> 11--FILE-- 12<?php 13/* Prototype : bool curl_setopt(resource ch, int option, mixed value) 14 * Description: Set an option for a cURL transfer 15 * Source code: ext/curl/interface.c 16 * Alias to functions: 17 */ 18 19 $host = getenv('PHP_CURL_HTTP_REMOTE_SERVER'); 20 21 // start testing 22 echo '*** Testing curl_setopt($ch, CURLOPT_WRITEFUNCTION, <closure>); ***' . "\n"; 23 24 $url = "{$host}/get.php?test=get"; 25 $ch = curl_init(); 26 $alldata = ''; 27 ob_start(); // start output buffering 28 curl_setopt($ch, CURLOPT_URL, $url); //set the url we want to use 29 curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $data) { 30 $GLOBALS['alldata'] .= $data; 31 return strlen ($data); 32 }); 33 34 curl_exec($ch); 35 curl_close($ch); 36 ob_end_flush(); 37 echo "Data: $alldata"; 38?> 39===DONE=== 40--EXPECTF-- 41*** Testing curl_setopt($ch, CURLOPT_WRITEFUNCTION, <closure>); *** 42Data: Hello World! 43Hello World!===DONE=== 44