curl_basic_017.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. Test curl_multi_exec() 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_multi_exec(resource ch)
  10. * Description: Perform a cURL session
  11. * Source code: ext/curl/multi.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. curl_setopt($chs[0], CURLOPT_URL, $url); //set the url we want to use
  26. curl_setopt($chs[1], CURLOPT_URL, $url); //set the url we want to use
  27. curl_setopt($chs[2], CURLOPT_URL, $url); //set the url we want to use
  28. $mh = curl_multi_init();
  29. // add handlers
  30. curl_multi_add_handle($mh, $chs[0]);
  31. curl_multi_add_handle($mh, $chs[1]);
  32. curl_multi_add_handle($mh, $chs[2]);
  33. $running=null;
  34. //execute the handles
  35. $state = null;
  36. do {
  37. $state = curl_multi_exec($mh, $running);
  38. } while ($running > 0);
  39. //close the handles
  40. curl_multi_remove_handle($mh, $chs[0]);
  41. curl_multi_remove_handle($mh, $chs[1]);
  42. curl_multi_remove_handle($mh, $chs[2]);
  43. curl_multi_close($mh);
  44. $curl_content = ob_get_contents();
  45. ob_end_clean();
  46. if($state === CURLM_OK) {
  47. var_dump( $curl_content );
  48. } else {
  49. echo "curl_exec returned false";
  50. }
  51. ?>
  52. ===DONE===
  53. --EXPECTF--
  54. *** Testing curl_exec() : basic functionality ***
  55. string(75) "Hello World!
  56. Hello World!Hello World!
  57. Hello World!Hello World!
  58. Hello World!"
  59. ===DONE===