1--TEST-- 2Test parse_url() function : usage variations - unexpected type for arg 2. 3--SKIPIF-- 4<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit 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 111Error: 2 - parse_url(): Invalid URL component identifier %d, %s(71) 112bool(false) 113 114Arg value 1.07654321E-9 115string(4) "http" 116 117Arg value 0.5 118string(4) "http" 119 120Arg value Array 121Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 122NULL 123 124Arg value Array 125Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 126NULL 127 128Arg value Array 129Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 130NULL 131 132Arg value Array 133Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 134NULL 135 136Arg value Array 137Error: 2 - parse_url() expects parameter 2 to be long, array given, %s(71) 138NULL 139 140Arg value 141string(4) "http" 142 143Arg value 144string(4) "http" 145 146Arg value 1 147string(11) "www.php.net" 148 149Arg value 150string(4) "http" 151 152Arg value 1 153string(11) "www.php.net" 154 155Arg value 156string(4) "http" 157 158Arg value 159Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 160NULL 161 162Arg value 163Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 164NULL 165 166Arg value string 167Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 168NULL 169 170Arg value string 171Error: 2 - parse_url() expects parameter 2 to be long, string given, %s(71) 172NULL 173Error: 4096 - Object of class stdClass could not be converted to string, %s(70) 174 175Arg value 176Error: 2 - parse_url() expects parameter 2 to be long, object given, %s(71) 177NULL 178 179Arg value 180string(4) "http" 181 182Arg value 183string(4) "http" 184Done