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