Annotation of embedaddon/php/ext/standard/tests/file/fgetcsv_variation31.phpt, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>