xref: /PHP-5.4/ext/curl/tests/curl_basic_006.phpt (revision 6ef8e0f0)
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