1--TEST-- 2Test parse_url() function : usage variations - unexpected type for arg 2. 3--SKIPIF-- 4<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platforms only"); ?> 5--FILE-- 6<?php 7/* Prototype : proto mixed parse_url(string url, [int url_component]) 8 * Description: Parse a URL and return its components 9 * Source code: ext/standard/url.c 10 * Alias to functions: 11 */ 12 13function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 14 echo "Error: $err_no - $err_msg, $filename($linenum)\n"; 15} 16set_error_handler('test_error_handler'); 17 18echo "*** Testing parse_url() : usage variations ***\n"; 19 20// Initialise function arguments not being substituted (if any) 21$url = 'http://secret:hideout@www.php.net:80/index.php?test=1&test2=char&test3=mixesCI#some_page_ref123'; 22 23//get an unset variable 24$unset_var = 10; 25unset ($unset_var); 26 27//array of values to iterate over 28$values = array( 29 30 // float data 31 10.5, 32 -10.5, 33 10.1234567e10, 34 10.7654321E-10, 35 .5, 36 37 // array data 38 array(), 39 array(0), 40 array(1), 41 array(1, 2), 42 array('color' => 'red', 'item' => 'pen'), 43 44 // null data 45 NULL, 46 null, 47 48 // boolean data 49 true, 50 false, 51 TRUE, 52 FALSE, 53 54 // empty data 55 "", 56 '', 57 58 // string data 59 "string", 60 'string', 61 62 // object data 63 new stdclass(), 64 65 // undefined data 66 $undefined_var, 67 68 // unset data 69 $unset_var, 70); 71 72// loop through each element of the array for url_component 73 74foreach($values as $value) { 75 echo "\nArg value $value \n"; 76 var_dump( parse_url($url, $value) ); 77}; 78 79echo "Done"; 80?> 81--EXPECTF-- 82*** Testing parse_url() : usage variations *** 83Error: 8 - Undefined variable: undefined_var, %s(61) 84Error: 8 - Undefined variable: unset_var, %s(64) 85 86Arg value 10.5 87Error: 2 - parse_url(): Invalid URL component identifier 10, %s(71) 88bool(false) 89 90Arg value -10.5 91array(8) { 92 ["scheme"]=> 93 string(4) "http" 94 ["host"]=> 95 string(11) "www.php.net" 96 ["port"]=> 97 int(80) 98 ["user"]=> 99 string(6) "secret" 100 ["pass"]=> 101 string(7) "hideout" 102 ["path"]=> 103 string(10) "/index.php" 104 ["query"]=> 105 string(31) "test=1&test2=char&test3=mixesCI" 106 ["fragment"]=> 107 string(16) "some_page_ref123" 108} 109 110Arg value 101234567000 111array(8) { 112 ["scheme"]=> 113 string(4) "http" 114 ["host"]=> 115 string(11) "www.php.net" 116 ["port"]=> 117 int(80) 118 ["user"]=> 119 string(6) "secret" 120 ["pass"]=> 121 string(7) "hideout" 122 ["path"]=> 123 string(10) "/index.php" 124 ["query"]=> 125 string(31) "test=1&test2=char&test3=mixesCI" 126 ["fragment"]=> 127 string(16) "some_page_ref123" 128} 129 130Arg value 1.07654321E-9 131string(4) "http" 132 133Arg value 0.5 134string(4) "http" 135Error: 8 - Array to string conversion, %sparse_url_variation_002_32bit.php(%d) 136 137Arg value Array 138Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 139NULL 140Error: 8 - Array to string conversion, %sparse_url_variation_002_32bit.php(%d) 141 142Arg value Array 143Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 144NULL 145Error: 8 - Array to string conversion, %sparse_url_variation_002_32bit.php(%d) 146 147Arg value Array 148Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 149NULL 150Error: 8 - Array to string conversion, %sparse_url_variation_002_32bit.php(%d) 151 152Arg value Array 153Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 154NULL 155Error: 8 - Array to string conversion, %sparse_url_variation_002_32bit.php(%d) 156 157Arg value Array 158Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 159NULL 160 161Arg value 162string(4) "http" 163 164Arg value 165string(4) "http" 166 167Arg value 1 168string(11) "www.php.net" 169 170Arg value 171string(4) "http" 172 173Arg value 1 174string(11) "www.php.net" 175 176Arg value 177string(4) "http" 178 179Arg value 180Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 181NULL 182 183Arg value 184Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 185NULL 186 187Arg value string 188Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 189NULL 190 191Arg value string 192Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 193NULL 194Error: 4096 - Object of class stdClass could not be converted to string, %s(70) 195 196Arg value 197Error: 2 - parse_url() expects parameter 2 to be long, object given, %s(71) 198NULL 199 200Arg value 201string(4) "http" 202 203Arg value 204string(4) "http" 205Done