1--TEST-- 2Test sprintf() function : usage variations - hexa formats with float values 3--SKIPIF-- 4<?php 5if (PHP_INT_SIZE != 4) { 6 die("skip this test is for 32bit platform only"); 7} 8?> 9--FILE-- 10<?php 11/* Prototype : string sprintf(string $format [, mixed $arg1 [, mixed ...]]) 12 * Description: Return a formatted string 13 * Source code: ext/standard/formatted_print.c 14*/ 15 16echo "*** Testing sprintf() : hexa formats with float values ***\n"; 17 18// array of float values 19$float_values = array( 20 2147483647, 21 0x800000001, // float value, beyond max positive int 22 020000000001, // float value, beyond max positive int 23 0.0, 24 -0.1, 25 1.0, 26 1e5, 27 -1e6, 28 1E8, 29 -1E9, 30 10.0000000000000000005, 31 10.5e+5 32); 33 34// array of hexa formats 35$hexa_formats = array( 36 "%x", "%xx", "%lx", 37 "%Lx", " %x", "%x ", 38 "\t%x", "\n%x", "%4x", 39 "%30x", "%[0-9A-Fa-f]", "%*x" 40); 41 42$count = 1; 43foreach($float_values as $float_value) { 44 echo "\n-- Iteration $count --\n"; 45 46 foreach($hexa_formats as $format) { 47 // with two arguments 48 var_dump( sprintf($format, $float_value) ); 49 } 50 $count++; 51}; 52 53echo "Done"; 54?> 55--EXPECT-- 56*** Testing sprintf() : hexa formats with float values *** 57 58-- Iteration 1 -- 59string(8) "7fffffff" 60string(9) "7fffffffx" 61string(8) "7fffffff" 62string(1) "x" 63string(9) " 7fffffff" 64string(9) "7fffffff " 65string(9) " 7fffffff" 66string(9) " 677fffffff" 68string(8) "7fffffff" 69string(30) " 7fffffff" 70string(10) "0-9A-Fa-f]" 71string(1) "x" 72 73-- Iteration 2 -- 74string(1) "1" 75string(2) "1x" 76string(1) "1" 77string(1) "x" 78string(2) " 1" 79string(2) "1 " 80string(2) " 1" 81string(2) " 821" 83string(4) " 1" 84string(30) " 1" 85string(10) "0-9A-Fa-f]" 86string(1) "x" 87 88-- Iteration 3 -- 89string(8) "80000001" 90string(9) "80000001x" 91string(8) "80000001" 92string(1) "x" 93string(9) " 80000001" 94string(9) "80000001 " 95string(9) " 80000001" 96string(9) " 9780000001" 98string(8) "80000001" 99string(30) " 80000001" 100string(10) "0-9A-Fa-f]" 101string(1) "x" 102 103-- Iteration 4 -- 104string(1) "0" 105string(2) "0x" 106string(1) "0" 107string(1) "x" 108string(2) " 0" 109string(2) "0 " 110string(2) " 0" 111string(2) " 1120" 113string(4) " 0" 114string(30) " 0" 115string(10) "0-9A-Fa-f]" 116string(1) "x" 117 118-- Iteration 5 -- 119string(1) "0" 120string(2) "0x" 121string(1) "0" 122string(1) "x" 123string(2) " 0" 124string(2) "0 " 125string(2) " 0" 126string(2) " 1270" 128string(4) " 0" 129string(30) " 0" 130string(10) "0-9A-Fa-f]" 131string(1) "x" 132 133-- Iteration 6 -- 134string(1) "1" 135string(2) "1x" 136string(1) "1" 137string(1) "x" 138string(2) " 1" 139string(2) "1 " 140string(2) " 1" 141string(2) " 1421" 143string(4) " 1" 144string(30) " 1" 145string(10) "0-9A-Fa-f]" 146string(1) "x" 147 148-- Iteration 7 -- 149string(5) "186a0" 150string(6) "186a0x" 151string(5) "186a0" 152string(1) "x" 153string(6) " 186a0" 154string(6) "186a0 " 155string(6) " 186a0" 156string(6) " 157186a0" 158string(5) "186a0" 159string(30) " 186a0" 160string(10) "0-9A-Fa-f]" 161string(1) "x" 162 163-- Iteration 8 -- 164string(8) "fff0bdc0" 165string(9) "fff0bdc0x" 166string(8) "fff0bdc0" 167string(1) "x" 168string(9) " fff0bdc0" 169string(9) "fff0bdc0 " 170string(9) " fff0bdc0" 171string(9) " 172fff0bdc0" 173string(8) "fff0bdc0" 174string(30) " fff0bdc0" 175string(10) "0-9A-Fa-f]" 176string(1) "x" 177 178-- Iteration 9 -- 179string(7) "5f5e100" 180string(8) "5f5e100x" 181string(7) "5f5e100" 182string(1) "x" 183string(8) " 5f5e100" 184string(8) "5f5e100 " 185string(8) " 5f5e100" 186string(8) " 1875f5e100" 188string(7) "5f5e100" 189string(30) " 5f5e100" 190string(10) "0-9A-Fa-f]" 191string(1) "x" 192 193-- Iteration 10 -- 194string(8) "c4653600" 195string(9) "c4653600x" 196string(8) "c4653600" 197string(1) "x" 198string(9) " c4653600" 199string(9) "c4653600 " 200string(9) " c4653600" 201string(9) " 202c4653600" 203string(8) "c4653600" 204string(30) " c4653600" 205string(10) "0-9A-Fa-f]" 206string(1) "x" 207 208-- Iteration 11 -- 209string(1) "a" 210string(2) "ax" 211string(1) "a" 212string(1) "x" 213string(2) " a" 214string(2) "a " 215string(2) " a" 216string(2) " 217a" 218string(4) " a" 219string(30) " a" 220string(10) "0-9A-Fa-f]" 221string(1) "x" 222 223-- Iteration 12 -- 224string(6) "100590" 225string(7) "100590x" 226string(6) "100590" 227string(1) "x" 228string(7) " 100590" 229string(7) "100590 " 230string(7) " 100590" 231string(7) " 232100590" 233string(6) "100590" 234string(30) " 100590" 235string(10) "0-9A-Fa-f]" 236string(1) "x" 237Done 238