1--TEST-- 2Test sprintf() function : usage variations - string formats with string values 3--FILE-- 4<?php 5/* Prototype : string sprintf(string $format [, mixed $arg1 [, mixed ...]]) 6 * Description: Return a formatted string 7 * Source code: ext/standard/formatted_print.c 8*/ 9 10 11echo "*** Testing sprintf() : string formats with string values ***\n"; 12 13// defining different heredoc strings 14/* string created using Heredoc (<<<) */ 15$heredoc_string = <<<EOT 16This is string defined 17using heredoc. 18EOT; 19 20/* heredoc string with only numerics */ 21$heredoc_numeric_string = <<<EOT 22123456 3993 234849 string 24EOT; 25 26/* null heardoc string */ 27$heredoc_empty_string = <<<EOT 28EOT; 29$heredoc_null_string = <<<EOT 30NULL 31EOT; 32 33// array of strings used to test the function 34$string_values = array( 35 "", 36 " ", 37 '', 38 ' ', 39 "string", 40 'string', 41 "NULL", 42 'null', 43 "FALSE", 44 'true', 45 "\x0b", 46 "\0", 47 '\0', 48 '\060', 49 "\070", 50 "0x55F", 51 "055", 52 "@#$#$%%$^^$%^%^$^&", 53 $heredoc_string, 54 $heredoc_numeric_string, 55 $heredoc_empty_string, 56 $heredoc_null_string 57); 58 59// array of string formats 60$string_formats = array( 61 "%s", "%hs", "%ls", 62 "%Ls"," %s", "%s ", 63 "\t%s", "\n%s", "%4s", 64 "%30s", "%[a-zA-Z0-9]", "%*s" 65); 66 67$count = 1; 68foreach($string_values as $string_value) { 69 echo "\n-- Iteration $count --\n"; 70 71 foreach($string_formats as $format) { 72 var_dump( sprintf($format, $string_value) ); 73 } 74 $count++; 75}; 76 77echo "Done"; 78?> 79--EXPECT-- 80*** Testing sprintf() : string formats with string values *** 81 82-- Iteration 1 -- 83string(0) "" 84string(1) "s" 85string(0) "" 86string(1) "s" 87string(1) " " 88string(1) " " 89string(1) " " 90string(1) " 91" 92string(4) " " 93string(30) " " 94string(10) "a-zA-Z0-9]" 95string(1) "s" 96 97-- Iteration 2 -- 98string(1) " " 99string(1) "s" 100string(1) " " 101string(1) "s" 102string(2) " " 103string(2) " " 104string(2) " " 105string(2) " 106 " 107string(4) " " 108string(30) " " 109string(10) "a-zA-Z0-9]" 110string(1) "s" 111 112-- Iteration 3 -- 113string(0) "" 114string(1) "s" 115string(0) "" 116string(1) "s" 117string(1) " " 118string(1) " " 119string(1) " " 120string(1) " 121" 122string(4) " " 123string(30) " " 124string(10) "a-zA-Z0-9]" 125string(1) "s" 126 127-- Iteration 4 -- 128string(1) " " 129string(1) "s" 130string(1) " " 131string(1) "s" 132string(2) " " 133string(2) " " 134string(2) " " 135string(2) " 136 " 137string(4) " " 138string(30) " " 139string(10) "a-zA-Z0-9]" 140string(1) "s" 141 142-- Iteration 5 -- 143string(6) "string" 144string(1) "s" 145string(6) "string" 146string(1) "s" 147string(7) " string" 148string(7) "string " 149string(7) " string" 150string(7) " 151string" 152string(6) "string" 153string(30) " string" 154string(10) "a-zA-Z0-9]" 155string(1) "s" 156 157-- Iteration 6 -- 158string(6) "string" 159string(1) "s" 160string(6) "string" 161string(1) "s" 162string(7) " string" 163string(7) "string " 164string(7) " string" 165string(7) " 166string" 167string(6) "string" 168string(30) " string" 169string(10) "a-zA-Z0-9]" 170string(1) "s" 171 172-- Iteration 7 -- 173string(4) "NULL" 174string(1) "s" 175string(4) "NULL" 176string(1) "s" 177string(5) " NULL" 178string(5) "NULL " 179string(5) " NULL" 180string(5) " 181NULL" 182string(4) "NULL" 183string(30) " NULL" 184string(10) "a-zA-Z0-9]" 185string(1) "s" 186 187-- Iteration 8 -- 188string(4) "null" 189string(1) "s" 190string(4) "null" 191string(1) "s" 192string(5) " null" 193string(5) "null " 194string(5) " null" 195string(5) " 196null" 197string(4) "null" 198string(30) " null" 199string(10) "a-zA-Z0-9]" 200string(1) "s" 201 202-- Iteration 9 -- 203string(5) "FALSE" 204string(1) "s" 205string(5) "FALSE" 206string(1) "s" 207string(6) " FALSE" 208string(6) "FALSE " 209string(6) " FALSE" 210string(6) " 211FALSE" 212string(5) "FALSE" 213string(30) " FALSE" 214string(10) "a-zA-Z0-9]" 215string(1) "s" 216 217-- Iteration 10 -- 218string(4) "true" 219string(1) "s" 220string(4) "true" 221string(1) "s" 222string(5) " true" 223string(5) "true " 224string(5) " true" 225string(5) " 226true" 227string(4) "true" 228string(30) " true" 229string(10) "a-zA-Z0-9]" 230string(1) "s" 231 232-- Iteration 11 -- 233string(1) "" 234string(1) "s" 235string(1) "" 236string(1) "s" 237string(2) " " 238string(2) " " 239string(2) " " 240string(2) " 241" 242string(4) " " 243string(30) " " 244string(10) "a-zA-Z0-9]" 245string(1) "s" 246 247-- Iteration 12 -- 248string(1) "" 249string(1) "s" 250string(1) "" 251string(1) "s" 252string(2) " " 253string(2) " " 254string(2) " " 255string(2) " 256" 257string(4) " " 258string(30) " " 259string(10) "a-zA-Z0-9]" 260string(1) "s" 261 262-- Iteration 13 -- 263string(2) "\0" 264string(1) "s" 265string(2) "\0" 266string(1) "s" 267string(3) " \0" 268string(3) "\0 " 269string(3) " \0" 270string(3) " 271\0" 272string(4) " \0" 273string(30) " \0" 274string(10) "a-zA-Z0-9]" 275string(1) "s" 276 277-- Iteration 14 -- 278string(4) "\060" 279string(1) "s" 280string(4) "\060" 281string(1) "s" 282string(5) " \060" 283string(5) "\060 " 284string(5) " \060" 285string(5) " 286\060" 287string(4) "\060" 288string(30) " \060" 289string(10) "a-zA-Z0-9]" 290string(1) "s" 291 292-- Iteration 15 -- 293string(1) "8" 294string(1) "s" 295string(1) "8" 296string(1) "s" 297string(2) " 8" 298string(2) "8 " 299string(2) " 8" 300string(2) " 3018" 302string(4) " 8" 303string(30) " 8" 304string(10) "a-zA-Z0-9]" 305string(1) "s" 306 307-- Iteration 16 -- 308string(5) "0x55F" 309string(1) "s" 310string(5) "0x55F" 311string(1) "s" 312string(6) " 0x55F" 313string(6) "0x55F " 314string(6) " 0x55F" 315string(6) " 3160x55F" 317string(5) "0x55F" 318string(30) " 0x55F" 319string(10) "a-zA-Z0-9]" 320string(1) "s" 321 322-- Iteration 17 -- 323string(3) "055" 324string(1) "s" 325string(3) "055" 326string(1) "s" 327string(4) " 055" 328string(4) "055 " 329string(4) " 055" 330string(4) " 331055" 332string(4) " 055" 333string(30) " 055" 334string(10) "a-zA-Z0-9]" 335string(1) "s" 336 337-- Iteration 18 -- 338string(18) "@#$#$%%$^^$%^%^$^&" 339string(1) "s" 340string(18) "@#$#$%%$^^$%^%^$^&" 341string(1) "s" 342string(19) " @#$#$%%$^^$%^%^$^&" 343string(19) "@#$#$%%$^^$%^%^$^& " 344string(19) " @#$#$%%$^^$%^%^$^&" 345string(19) " 346@#$#$%%$^^$%^%^$^&" 347string(18) "@#$#$%%$^^$%^%^$^&" 348string(30) " @#$#$%%$^^$%^%^$^&" 349string(10) "a-zA-Z0-9]" 350string(1) "s" 351 352-- Iteration 19 -- 353string(37) "This is string defined 354using heredoc." 355string(1) "s" 356string(37) "This is string defined 357using heredoc." 358string(1) "s" 359string(38) " This is string defined 360using heredoc." 361string(38) "This is string defined 362using heredoc. " 363string(38) " This is string defined 364using heredoc." 365string(38) " 366This is string defined 367using heredoc." 368string(37) "This is string defined 369using heredoc." 370string(37) "This is string defined 371using heredoc." 372string(10) "a-zA-Z0-9]" 373string(1) "s" 374 375-- Iteration 20 -- 376string(23) "123456 3993 3774849 string" 378string(1) "s" 379string(23) "123456 3993 3804849 string" 381string(1) "s" 382string(24) " 123456 3993 3834849 string" 384string(24) "123456 3993 3854849 string " 386string(24) " 123456 3993 3874849 string" 388string(24) " 389123456 3993 3904849 string" 391string(23) "123456 3993 3924849 string" 393string(30) " 123456 3993 3944849 string" 395string(10) "a-zA-Z0-9]" 396string(1) "s" 397 398-- Iteration 21 -- 399string(0) "" 400string(1) "s" 401string(0) "" 402string(1) "s" 403string(1) " " 404string(1) " " 405string(1) " " 406string(1) " 407" 408string(4) " " 409string(30) " " 410string(10) "a-zA-Z0-9]" 411string(1) "s" 412 413-- Iteration 22 -- 414string(4) "NULL" 415string(1) "s" 416string(4) "NULL" 417string(1) "s" 418string(5) " NULL" 419string(5) "NULL " 420string(5) " NULL" 421string(5) " 422NULL" 423string(4) "NULL" 424string(30) " NULL" 425string(10) "a-zA-Z0-9]" 426string(1) "s" 427Done 428