Return to fgetcsv_variation22.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fgetcsv() : usage variations - with default enclosure, file pointer pointing at end of file 3: --FILE-- 4: <?php 5: /* 6: Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] ); 7: Description: Gets line from file pointer and parse for CSV fields 8: */ 9: 10: /* 11: Testing fgetcsv() to read a file whose file pointer is pointing to end of file 12: and fgetcsv() provided with default enclosure argument 13: */ 14: 15: echo "*** Testing fgetcsv() : with default enclosure, file pointer pointing at end of file ***\n"; 16: 17: /* the array is with two elements in it. Each element should be read as 18: 1st element is delimiter & 2nd element is csv fields 19: */ 20: $csv_lists = array ( 21: array(',', 'water,fruit'), 22: array(' ', 'water fruit'), 23: array(' ', '"water" "fruit"'), 24: array('\\', 'water\\"fruit"\\"air"'), 25: array('\\', '"water"\\"fruit"\\"""'), 26: ); 27: 28: $filename = dirname(__FILE__) . '/fgetcsv_variation22.tmp'; 29: @unlink($filename); 30: 31: $file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t", 32: "a+", "a+b", "a+t", 33: "w+", "w+b", "w+t", 34: "x+", "x+b", "x+t"); 35: 36: $loop_counter = 1; 37: foreach ($csv_lists as $csv_list) { 38: for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) { 39: // create the file and add the content with has csv fields 40: if ( strstr($file_modes[$mode_counter], "r") ) { 41: $file_handle = fopen($filename, "w"); 42: } else { 43: $file_handle = fopen($filename, $file_modes[$mode_counter] ); 44: } 45: if ( !$file_handle ) { 46: echo "Error: failed to create file $filename!\n"; 47: exit(); 48: } 49: $delimiter = $csv_list[0]; 50: $csv_field = $csv_list[1]; 51: 52: fwrite($file_handle, $csv_field . "\n"); 53: // write another line of text and a blank line 54: // this will be used to test, if the fgetcsv() read more than a line and its 55: // working when only a blan line is read 56: fwrite($file_handle, "This is line of text without csv fields\n"); 57: fwrite($file_handle, "\n"); // blank line 58: 59: // close the file if the mode to be used is read mode and re-open using read mode 60: if ( strstr($file_modes[$mode_counter], "r" ) ) { 61: fclose($file_handle); 62: $file_handle = fopen($filename, $file_modes[$mode_counter]); 63: } 64: 65: echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 66: 67: // set the file pointer to EOF 68: var_dump( fseek($file_handle, 0, SEEK_END) ); 69: 70: // call fgetcsv() to parse csv fields 71: 72: // now file pointer should point to end of the file, try reading again 73: var_dump( feof($file_handle) ); 74: var_dump( fgetcsv($file_handle, 1024, $delimiter) ); // with length, delimiter 75: // check the file pointer position and if eof 76: var_dump( ftell($file_handle) ); 77: var_dump( feof($file_handle) ); 78: // close the file 79: fclose($file_handle); 80: //delete file 81: unlink($filename); 82: } //end of mode loop 83: } // end of foreach 84: 85: echo "Done\n"; 86: ?> 87: --EXPECTF-- 88: *** Testing fgetcsv() : with default enclosure, file pointer pointing at end of file *** 89: 90: -- Testing fgetcsv() with file opened using r mode -- 91: int(0) 92: bool(false) 93: bool(false) 94: int(53) 95: bool(true) 96: 97: -- Testing fgetcsv() with file opened using rb mode -- 98: int(0) 99: bool(false) 100: bool(false) 101: int(53) 102: bool(true) 103: 104: -- Testing fgetcsv() with file opened using rt mode -- 105: int(0) 106: bool(false) 107: bool(false) 108: int(%d) 109: bool(true) 110: 111: -- Testing fgetcsv() with file opened using r+ mode -- 112: int(0) 113: bool(false) 114: bool(false) 115: int(53) 116: bool(true) 117: 118: -- Testing fgetcsv() with file opened using r+b mode -- 119: int(0) 120: bool(false) 121: bool(false) 122: int(53) 123: bool(true) 124: 125: -- Testing fgetcsv() with file opened using r+t mode -- 126: int(0) 127: bool(false) 128: bool(false) 129: int(%d) 130: bool(true) 131: 132: -- Testing fgetcsv() with file opened using a+ mode -- 133: int(0) 134: bool(false) 135: bool(false) 136: int(53) 137: bool(true) 138: 139: -- Testing fgetcsv() with file opened using a+b mode -- 140: int(0) 141: bool(false) 142: bool(false) 143: int(53) 144: bool(true) 145: 146: -- Testing fgetcsv() with file opened using a+t mode -- 147: int(0) 148: bool(false) 149: bool(false) 150: int(%d) 151: bool(true) 152: 153: -- Testing fgetcsv() with file opened using w+ mode -- 154: int(0) 155: bool(false) 156: bool(false) 157: int(53) 158: bool(true) 159: 160: -- Testing fgetcsv() with file opened using w+b mode -- 161: int(0) 162: bool(false) 163: bool(false) 164: int(53) 165: bool(true) 166: 167: -- Testing fgetcsv() with file opened using w+t mode -- 168: int(0) 169: bool(false) 170: bool(false) 171: int(%d) 172: bool(true) 173: 174: -- Testing fgetcsv() with file opened using x+ mode -- 175: int(0) 176: bool(false) 177: bool(false) 178: int(53) 179: bool(true) 180: 181: -- Testing fgetcsv() with file opened using x+b mode -- 182: int(0) 183: bool(false) 184: bool(false) 185: int(53) 186: bool(true) 187: 188: -- Testing fgetcsv() with file opened using x+t mode -- 189: int(0) 190: bool(false) 191: bool(false) 192: int(%d) 193: bool(true) 194: 195: -- Testing fgetcsv() with file opened using r mode -- 196: int(0) 197: bool(false) 198: bool(false) 199: int(53) 200: bool(true) 201: 202: -- Testing fgetcsv() with file opened using rb mode -- 203: int(0) 204: bool(false) 205: bool(false) 206: int(53) 207: bool(true) 208: 209: -- Testing fgetcsv() with file opened using rt mode -- 210: int(0) 211: bool(false) 212: bool(false) 213: int(%d) 214: bool(true) 215: 216: -- Testing fgetcsv() with file opened using r+ mode -- 217: int(0) 218: bool(false) 219: bool(false) 220: int(53) 221: bool(true) 222: 223: -- Testing fgetcsv() with file opened using r+b mode -- 224: int(0) 225: bool(false) 226: bool(false) 227: int(53) 228: bool(true) 229: 230: -- Testing fgetcsv() with file opened using r+t mode -- 231: int(0) 232: bool(false) 233: bool(false) 234: int(%d) 235: bool(true) 236: 237: -- Testing fgetcsv() with file opened using a+ mode -- 238: int(0) 239: bool(false) 240: bool(false) 241: int(53) 242: bool(true) 243: 244: -- Testing fgetcsv() with file opened using a+b mode -- 245: int(0) 246: bool(false) 247: bool(false) 248: int(53) 249: bool(true) 250: 251: -- Testing fgetcsv() with file opened using a+t mode -- 252: int(0) 253: bool(false) 254: bool(false) 255: int(%d) 256: bool(true) 257: 258: -- Testing fgetcsv() with file opened using w+ mode -- 259: int(0) 260: bool(false) 261: bool(false) 262: int(53) 263: bool(true) 264: 265: -- Testing fgetcsv() with file opened using w+b mode -- 266: int(0) 267: bool(false) 268: bool(false) 269: int(53) 270: bool(true) 271: 272: -- Testing fgetcsv() with file opened using w+t mode -- 273: int(0) 274: bool(false) 275: bool(false) 276: int(%d) 277: bool(true) 278: 279: -- Testing fgetcsv() with file opened using x+ mode -- 280: int(0) 281: bool(false) 282: bool(false) 283: int(53) 284: bool(true) 285: 286: -- Testing fgetcsv() with file opened using x+b mode -- 287: int(0) 288: bool(false) 289: bool(false) 290: int(53) 291: bool(true) 292: 293: -- Testing fgetcsv() with file opened using x+t mode -- 294: int(0) 295: bool(false) 296: bool(false) 297: int(%d) 298: bool(true) 299: 300: -- Testing fgetcsv() with file opened using r mode -- 301: int(0) 302: bool(false) 303: bool(false) 304: int(57) 305: bool(true) 306: 307: -- Testing fgetcsv() with file opened using rb mode -- 308: int(0) 309: bool(false) 310: bool(false) 311: int(57) 312: bool(true) 313: 314: -- Testing fgetcsv() with file opened using rt mode -- 315: int(0) 316: bool(false) 317: bool(false) 318: int(%d) 319: bool(true) 320: 321: -- Testing fgetcsv() with file opened using r+ mode -- 322: int(0) 323: bool(false) 324: bool(false) 325: int(57) 326: bool(true) 327: 328: -- Testing fgetcsv() with file opened using r+b mode -- 329: int(0) 330: bool(false) 331: bool(false) 332: int(57) 333: bool(true) 334: 335: -- Testing fgetcsv() with file opened using r+t mode -- 336: int(0) 337: bool(false) 338: bool(false) 339: int(%d) 340: bool(true) 341: 342: -- Testing fgetcsv() with file opened using a+ mode -- 343: int(0) 344: bool(false) 345: bool(false) 346: int(57) 347: bool(true) 348: 349: -- Testing fgetcsv() with file opened using a+b mode -- 350: int(0) 351: bool(false) 352: bool(false) 353: int(57) 354: bool(true) 355: 356: -- Testing fgetcsv() with file opened using a+t mode -- 357: int(0) 358: bool(false) 359: bool(false) 360: int(%d) 361: bool(true) 362: 363: -- Testing fgetcsv() with file opened using w+ mode -- 364: int(0) 365: bool(false) 366: bool(false) 367: int(57) 368: bool(true) 369: 370: -- Testing fgetcsv() with file opened using w+b mode -- 371: int(0) 372: bool(false) 373: bool(false) 374: int(57) 375: bool(true) 376: 377: -- Testing fgetcsv() with file opened using w+t mode -- 378: int(0) 379: bool(false) 380: bool(false) 381: int(%d) 382: bool(true) 383: 384: -- Testing fgetcsv() with file opened using x+ mode -- 385: int(0) 386: bool(false) 387: bool(false) 388: int(57) 389: bool(true) 390: 391: -- Testing fgetcsv() with file opened using x+b mode -- 392: int(0) 393: bool(false) 394: bool(false) 395: int(57) 396: bool(true) 397: 398: -- Testing fgetcsv() with file opened using x+t mode -- 399: int(0) 400: bool(false) 401: bool(false) 402: int(%d) 403: bool(true) 404: 405: -- Testing fgetcsv() with file opened using r mode -- 406: int(0) 407: bool(false) 408: bool(false) 409: int(61) 410: bool(true) 411: 412: -- Testing fgetcsv() with file opened using rb mode -- 413: int(0) 414: bool(false) 415: bool(false) 416: int(61) 417: bool(true) 418: 419: -- Testing fgetcsv() with file opened using rt mode -- 420: int(0) 421: bool(false) 422: bool(false) 423: int(%d) 424: bool(true) 425: 426: -- Testing fgetcsv() with file opened using r+ mode -- 427: int(0) 428: bool(false) 429: bool(false) 430: int(61) 431: bool(true) 432: 433: -- Testing fgetcsv() with file opened using r+b mode -- 434: int(0) 435: bool(false) 436: bool(false) 437: int(61) 438: bool(true) 439: 440: -- Testing fgetcsv() with file opened using r+t mode -- 441: int(0) 442: bool(false) 443: bool(false) 444: int(%d) 445: bool(true) 446: 447: -- Testing fgetcsv() with file opened using a+ mode -- 448: int(0) 449: bool(false) 450: bool(false) 451: int(61) 452: bool(true) 453: 454: -- Testing fgetcsv() with file opened using a+b mode -- 455: int(0) 456: bool(false) 457: bool(false) 458: int(61) 459: bool(true) 460: 461: -- Testing fgetcsv() with file opened using a+t mode -- 462: int(0) 463: bool(false) 464: bool(false) 465: int(%d) 466: bool(true) 467: 468: -- Testing fgetcsv() with file opened using w+ mode -- 469: int(0) 470: bool(false) 471: bool(false) 472: int(61) 473: bool(true) 474: 475: -- Testing fgetcsv() with file opened using w+b mode -- 476: int(0) 477: bool(false) 478: bool(false) 479: int(61) 480: bool(true) 481: 482: -- Testing fgetcsv() with file opened using w+t mode -- 483: int(0) 484: bool(false) 485: bool(false) 486: int(%d) 487: bool(true) 488: 489: -- Testing fgetcsv() with file opened using x+ mode -- 490: int(0) 491: bool(false) 492: bool(false) 493: int(61) 494: bool(true) 495: 496: -- Testing fgetcsv() with file opened using x+b mode -- 497: int(0) 498: bool(false) 499: bool(false) 500: int(61) 501: bool(true) 502: 503: -- Testing fgetcsv() with file opened using x+t mode -- 504: int(0) 505: bool(false) 506: bool(false) 507: int(%d) 508: bool(true) 509: 510: -- Testing fgetcsv() with file opened using r mode -- 511: int(0) 512: bool(false) 513: bool(false) 514: int(61) 515: bool(true) 516: 517: -- Testing fgetcsv() with file opened using rb mode -- 518: int(0) 519: bool(false) 520: bool(false) 521: int(61) 522: bool(true) 523: 524: -- Testing fgetcsv() with file opened using rt mode -- 525: int(0) 526: bool(false) 527: bool(false) 528: int(%d) 529: bool(true) 530: 531: -- Testing fgetcsv() with file opened using r+ mode -- 532: int(0) 533: bool(false) 534: bool(false) 535: int(61) 536: bool(true) 537: 538: -- Testing fgetcsv() with file opened using r+b mode -- 539: int(0) 540: bool(false) 541: bool(false) 542: int(61) 543: bool(true) 544: 545: -- Testing fgetcsv() with file opened using r+t mode -- 546: int(0) 547: bool(false) 548: bool(false) 549: int(%d) 550: bool(true) 551: 552: -- Testing fgetcsv() with file opened using a+ mode -- 553: int(0) 554: bool(false) 555: bool(false) 556: int(61) 557: bool(true) 558: 559: -- Testing fgetcsv() with file opened using a+b mode -- 560: int(0) 561: bool(false) 562: bool(false) 563: int(61) 564: bool(true) 565: 566: -- Testing fgetcsv() with file opened using a+t mode -- 567: int(0) 568: bool(false) 569: bool(false) 570: int(%d) 571: bool(true) 572: 573: -- Testing fgetcsv() with file opened using w+ mode -- 574: int(0) 575: bool(false) 576: bool(false) 577: int(61) 578: bool(true) 579: 580: -- Testing fgetcsv() with file opened using w+b mode -- 581: int(0) 582: bool(false) 583: bool(false) 584: int(61) 585: bool(true) 586: 587: -- Testing fgetcsv() with file opened using w+t mode -- 588: int(0) 589: bool(false) 590: bool(false) 591: int(%d) 592: bool(true) 593: 594: -- Testing fgetcsv() with file opened using x+ mode -- 595: int(0) 596: bool(false) 597: bool(false) 598: int(61) 599: bool(true) 600: 601: -- Testing fgetcsv() with file opened using x+b mode -- 602: int(0) 603: bool(false) 604: bool(false) 605: int(61) 606: bool(true) 607: 608: -- Testing fgetcsv() with file opened using x+t mode -- 609: int(0) 610: bool(false) 611: bool(false) 612: int(%d) 613: bool(true) 614: Done