sapi_windows_vt100_support.inc 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. function resetVT100State()
  3. {
  4. $state = array(
  5. sapi_windows_vt100_support(STDIN),
  6. sapi_windows_vt100_support(STDOUT),
  7. sapi_windows_vt100_support(STDERR),
  8. );
  9. sapi_windows_vt100_support(STDIN, false);
  10. sapi_windows_vt100_support(STDOUT, false);
  11. sapi_windows_vt100_support(STDERR, false);
  12. return $state;
  13. }
  14. function restoreVT100State(array $state)
  15. {
  16. sapi_windows_vt100_support(STDIN, $state[0]);
  17. sapi_windows_vt100_support(STDOUT, $state[1]);
  18. sapi_windows_vt100_support(STDERR, $state[2]);
  19. }
  20. function testToStdOut()
  21. {
  22. $state = resetVT100State();
  23. $sampleStreams = array(
  24. 'STDIN (constant)' => STDIN,
  25. 'STDIN (fopen)' => fopen('php://stdin', 'rb'),
  26. 'STDIN (php://fd/0)' => fopen('php://fd/0', 'rb'),
  27. 'STDOUT (constant)' => STDOUT,
  28. 'STDOUT (fopen)' => fopen('php://stdout', 'wb'),
  29. 'STDOUT (php://fd/1)' => fopen('php://fd/1', 'wb'),
  30. 'STDERR (constant)' => STDERR,
  31. 'STDERR (fopen)' => fopen('php://stderr', 'wb'),
  32. 'STDERR (php://fd/2)' => fopen('php://fd/2', 'wb'),
  33. 'Not a stream' => 'foo',
  34. 'Invalid stream (php://temp)' => fopen('php://temp', 'wb'),
  35. 'Invalid stream (php://input)' => fopen('php://input', 'wb'),
  36. 'Invalid stream (php://memory)' => fopen('php://memory', 'wb'),
  37. 'File stream' => $closeMe = fopen(__FILE__, 'rb'),
  38. );
  39. foreach ($sampleStreams as $name => $stream) {
  40. echo "$name:\n";
  41. echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
  42. echo "- enabling VT100 : "; var_dump(sapi_windows_vt100_support($stream, true));
  43. echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
  44. echo "- disabling VT100: "; var_dump(sapi_windows_vt100_support($stream, false));
  45. echo "- current value : "; var_dump(sapi_windows_vt100_support($stream));
  46. }
  47. fclose($closeMe);
  48. restoreVT100State($state);
  49. }
  50. function testToStdErr()
  51. {
  52. ob_start();
  53. testToStdOut();
  54. $result = ob_get_contents();
  55. ob_end_clean();
  56. fwrite(STDERR, $result);
  57. }