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