curl_basic_018.phpt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. --TEST--
  2. Test curl_setopt() with curl_multi function with basic functionality
  3. --CREDITS--
  4. TestFest 2009 - AFUP - Thomas Rabaix <thomas.rabaix@gmail.com>
  5. --SKIPIF--
  6. <?php include 'skipif.inc'; ?>
  7. --FILE--
  8. <?php
  9. /* Prototype : bool curl_setopt(resource ch, int option, mixed value)
  10. * Description: Set an option for a cURL transfer
  11. * Source code: ext/curl/interface.c
  12. * Alias to functions:
  13. */
  14. include 'server.inc';
  15. $host = curl_cli_server_start();
  16. // start testing
  17. echo "*** Testing curl_exec() : basic functionality ***\n";
  18. $url = "{$host}/get.php?test=get";
  19. $chs = array(
  20. 0 => curl_init(),
  21. 1 => curl_init(),
  22. 2 => curl_init(),
  23. );
  24. ob_start(); // start output buffering
  25. $options = array(
  26. CURLOPT_RETURNTRANSFER => 1,
  27. CURLOPT_URL => $url,
  28. );
  29. curl_setopt_array($chs[0], $options); //set the options
  30. curl_setopt_array($chs[1], $options); //set the options
  31. curl_setopt_array($chs[2], $options); //set the options
  32. $mh = curl_multi_init();
  33. // add handlers
  34. curl_multi_add_handle($mh, $chs[0]);
  35. curl_multi_add_handle($mh, $chs[1]);
  36. curl_multi_add_handle($mh, $chs[2]);
  37. $running=null;
  38. //execute the handles
  39. do {
  40. curl_multi_exec($mh, $running);
  41. } while ($running > 0);
  42. $curl_content = '';
  43. $curl_content .= curl_multi_getcontent($chs[0]);
  44. $curl_content .= curl_multi_getcontent($chs[1]);
  45. $curl_content .= curl_multi_getcontent($chs[2]);
  46. //close the handles
  47. curl_multi_remove_handle($mh, $chs[0]);
  48. curl_multi_remove_handle($mh, $chs[1]);
  49. curl_multi_remove_handle($mh, $chs[2]);
  50. curl_multi_close($mh);
  51. var_dump( $curl_content );
  52. ?>
  53. ===DONE===
  54. --EXPECTF--
  55. *** Testing curl_exec() : basic functionality ***
  56. %unicode|string%(75) "Hello World!
  57. Hello World!Hello World!
  58. Hello World!Hello World!
  59. Hello World!"
  60. ===DONE===