file_variation.phpt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. --TEST--
  2. Test file() function : usage variations
  3. --FILE--
  4. <?php
  5. /*
  6. * Prototype: array file ( string filename [,int use-include_path [,resource context]] );
  7. * Description: Reads entire file into an array
  8. Returns the file in an array
  9. */
  10. require(dirname(__FILE__) . '/file.inc');
  11. $data_array = array( "Garbage data", "Gar\nba\nge d\nata", "Gar\n\nbage \n\n data" );
  12. echo "*** Using various flags values with different data in a file\n";
  13. $count=1;
  14. $file_path = dirname(__FILE__);
  15. foreach( $data_array as $data ) {
  16. echo "--Iteration $count --\n";
  17. $fh = fopen($file_path."/file_variation.tmp", "w");
  18. fwrite($fh, (binary)$data);
  19. var_dump( file($file_path."/file_variation.tmp", FILE_IGNORE_NEW_LINES) );
  20. var_dump( file($file_path."/file_variation.tmp", FILE_SKIP_EMPTY_LINES) );
  21. $count++;
  22. fclose($fh);
  23. }
  24. echo "*** Testing with variation in use_include_path argument ***\n";
  25. $file_path1 = dirname(__FILE__)."/file_variation";
  26. mkdir($file_path1);
  27. ini_set( 'include_path',$file_path.'/file_variation' );
  28. file_put_contents( $file_path1."/file1_variation.tmp", "aaaaaaaaaaaaaaabbbbbbbbbbb111111111222222222" );
  29. var_dump( file("file1_variation.tmp", FILE_USE_INCLUDE_PATH) );
  30. var_dump( file($file_path1."/file1_variation.tmp", 1) );
  31. echo "*** Using file function to remove line containing a key string ***\n";
  32. $file_handle = fopen($file_path."/file2_variation.tmp", "w");
  33. $key = "SEARCH_KEY";
  34. fwrite( $file_handle, (binary)"The key string to be searched is SEARCH_KEY\nLine without key string\nThe key string to be searched is SEARCH_KEY" );
  35. $out_array = file($file_path."/file2_variation.tmp");
  36. echo "File contents in array form Before replacement of the key\n";
  37. var_dump( $out_array );
  38. $file_handle2 = fopen($file_path."/file3_variation.tmp", "w");
  39. // Loop through file content array
  40. foreach($out_array as $line) {
  41. if( !strstr( $line, $key ) )
  42. fputs($file_handle2,$line);
  43. }
  44. echo "File contents in array form After replacement of the key\n";
  45. var_dump( file($file_path."/file3_variation.tmp" ));
  46. fclose($file_handle);
  47. fclose($file_handle2);
  48. echo "\n--- Done ---";
  49. ?>
  50. --CLEAN--
  51. <?php
  52. $file_path = dirname(__FILE__);
  53. unlink($file_path."/file_variation.tmp");
  54. unlink($file_path."/file_variation/file1_variation.tmp");
  55. unlink($file_path."/file2_variation.tmp");
  56. unlink($file_path."/file3_variation.tmp");
  57. rmdir($file_path."/file_variation");
  58. ?>
  59. --EXPECTF--
  60. *** Using various flags values with different data in a file
  61. --Iteration 1 --
  62. array(1) {
  63. [0]=>
  64. string(12) "Garbage data"
  65. }
  66. array(1) {
  67. [0]=>
  68. string(12) "Garbage data"
  69. }
  70. --Iteration 2 --
  71. array(4) {
  72. [0]=>
  73. string(3) "Gar"
  74. [1]=>
  75. string(2) "ba"
  76. [2]=>
  77. string(4) "ge d"
  78. [3]=>
  79. string(3) "ata"
  80. }
  81. array(4) {
  82. [0]=>
  83. string(4) "Gar
  84. "
  85. [1]=>
  86. string(3) "ba
  87. "
  88. [2]=>
  89. string(5) "ge d
  90. "
  91. [3]=>
  92. string(3) "ata"
  93. }
  94. --Iteration 3 --
  95. array(5) {
  96. [0]=>
  97. string(3) "Gar"
  98. [1]=>
  99. string(0) ""
  100. [2]=>
  101. string(5) "bage "
  102. [3]=>
  103. string(0) ""
  104. [4]=>
  105. string(5) " data"
  106. }
  107. array(5) {
  108. [0]=>
  109. string(4) "Gar
  110. "
  111. [1]=>
  112. string(1) "
  113. "
  114. [2]=>
  115. string(6) "bage
  116. "
  117. [3]=>
  118. string(1) "
  119. "
  120. [4]=>
  121. string(5) " data"
  122. }
  123. *** Testing with variation in use_include_path argument ***
  124. array(1) {
  125. [0]=>
  126. string(44) "aaaaaaaaaaaaaaabbbbbbbbbbb111111111222222222"
  127. }
  128. array(1) {
  129. [0]=>
  130. string(44) "aaaaaaaaaaaaaaabbbbbbbbbbb111111111222222222"
  131. }
  132. *** Using file function to remove line containing a key string ***
  133. File contents in array form Before replacement of the key
  134. array(3) {
  135. [0]=>
  136. string(44) "The key string to be searched is SEARCH_KEY
  137. "
  138. [1]=>
  139. string(24) "Line without key string
  140. "
  141. [2]=>
  142. string(43) "The key string to be searched is SEARCH_KEY"
  143. }
  144. File contents in array form After replacement of the key
  145. array(1) {
  146. [0]=>
  147. string(24) "Line without key string
  148. "
  149. }
  150. --- Done ---