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