curl_basic_018.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. --EXTENSIONS--
  6. curl
  7. --FILE--
  8. <?php
  9. include 'server.inc';
  10. $host = curl_cli_server_start();
  11. // start testing
  12. echo "*** Testing curl_exec() : basic functionality ***\n";
  13. $url = "{$host}/get.inc?test=get";
  14. $chs = array(
  15. 0 => curl_init(),
  16. 1 => curl_init(),
  17. 2 => curl_init(),
  18. );
  19. ob_start(); // start output buffering
  20. $options = array(
  21. CURLOPT_RETURNTRANSFER => 1,
  22. CURLOPT_URL => $url,
  23. );
  24. curl_setopt_array($chs[0], $options); //set the options
  25. curl_setopt_array($chs[1], $options); //set the options
  26. curl_setopt_array($chs[2], $options); //set the options
  27. $mh = curl_multi_init();
  28. // add handlers
  29. curl_multi_add_handle($mh, $chs[0]);
  30. curl_multi_add_handle($mh, $chs[1]);
  31. curl_multi_add_handle($mh, $chs[2]);
  32. $running=null;
  33. //execute the handles
  34. do {
  35. curl_multi_exec($mh, $running);
  36. } while ($running > 0);
  37. $curl_content = '';
  38. $curl_content .= curl_multi_getcontent($chs[0]);
  39. $curl_content .= curl_multi_getcontent($chs[1]);
  40. $curl_content .= curl_multi_getcontent($chs[2]);
  41. //close the handles
  42. curl_multi_remove_handle($mh, $chs[0]);
  43. curl_multi_remove_handle($mh, $chs[1]);
  44. curl_multi_remove_handle($mh, $chs[2]);
  45. curl_multi_close($mh);
  46. var_dump( $curl_content );
  47. ?>
  48. --EXPECT--
  49. *** Testing curl_exec() : basic functionality ***
  50. string(75) "Hello World!
  51. Hello World!Hello World!
  52. Hello World!Hello World!
  53. Hello World!"