fputcsv.phpt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. --TEST--
  2. various fputcsv() functionality tests
  3. --FILE--
  4. <?php
  5. $list = array (
  6. 0 => 'aaa,bbb',
  7. 1 => 'aaa,"bbb"',
  8. 2 => '"aaa","bbb"',
  9. 3 => 'aaa,bbb',
  10. 4 => '"aaa",bbb',
  11. 5 => '"aaa", "bbb"',
  12. 6 => ',',
  13. 7 => 'aaa,',
  14. 8 => ',"aaa"',
  15. 9 => '"",""',
  16. 10 => '"""""",',
  17. 11 => '""""",aaa',
  18. 12 => 'aaa,bbb ',
  19. 13 => 'aaa,"bbb "',
  20. 14 => 'aaa"aaa","bbb"bbb',
  21. 15 => 'aaa"aaa""",bbb',
  22. 16 => 'aaa,"\\"bbb,ccc',
  23. 17 => 'aaa"\\"a","bbb"',
  24. 18 => '"\\"","aaa"',
  25. 19 => '"\\""",aaa',
  26. );
  27. $file = __DIR__ . '/fputcsv.csv';
  28. @unlink($file);
  29. $fp = fopen($file, "w");
  30. foreach ($list as $v) {
  31. fputcsv($fp, explode(',', $v));
  32. }
  33. fclose($fp);
  34. $res = file($file);
  35. foreach($res as &$val)
  36. {
  37. $val = substr($val, 0, -1);
  38. }
  39. echo '$list = ';var_export($res);echo ";\n";
  40. $fp = fopen($file, "r");
  41. $res = array();
  42. while($l=fgetcsv($fp))
  43. {
  44. $res[] = join(',',$l);
  45. }
  46. fclose($fp);
  47. echo '$list = ';var_export($res);echo ";\n";
  48. @unlink($file);
  49. ?>
  50. --EXPECT--
  51. $list = array (
  52. 0 => 'aaa,bbb',
  53. 1 => 'aaa,"""bbb"""',
  54. 2 => '"""aaa""","""bbb"""',
  55. 3 => 'aaa,bbb',
  56. 4 => '"""aaa""",bbb',
  57. 5 => '"""aaa"""," ""bbb"""',
  58. 6 => ',',
  59. 7 => 'aaa,',
  60. 8 => ',"""aaa"""',
  61. 9 => '"""""",""""""',
  62. 10 => '"""""""""""""",',
  63. 11 => '"""""""""""",aaa',
  64. 12 => 'aaa,"bbb "',
  65. 13 => 'aaa,"""bbb """',
  66. 14 => '"aaa""aaa""","""bbb""bbb"',
  67. 15 => '"aaa""aaa""""""",bbb',
  68. 16 => 'aaa,"""\\"bbb",ccc',
  69. 17 => '"aaa""\\"a""","""bbb"""',
  70. 18 => '"""\\"""","""aaa"""',
  71. 19 => '"""\\"""""",aaa',
  72. );
  73. $list = array (
  74. 0 => 'aaa,bbb',
  75. 1 => 'aaa,"bbb"',
  76. 2 => '"aaa","bbb"',
  77. 3 => 'aaa,bbb',
  78. 4 => '"aaa",bbb',
  79. 5 => '"aaa", "bbb"',
  80. 6 => ',',
  81. 7 => 'aaa,',
  82. 8 => ',"aaa"',
  83. 9 => '"",""',
  84. 10 => '"""""",',
  85. 11 => '""""",aaa',
  86. 12 => 'aaa,bbb ',
  87. 13 => 'aaa,"bbb "',
  88. 14 => 'aaa"aaa","bbb"bbb',
  89. 15 => 'aaa"aaa""",bbb',
  90. 16 => 'aaa,"\\"bbb,ccc',
  91. 17 => 'aaa"\\"a","bbb"',
  92. 18 => '"\\"","aaa"',
  93. 19 => '"\\""",aaa',
  94. );