3v4l.org

run code in 300+ PHP versions simultaneously
<?php // this is hack until you can manage to resolve the encoding issue in a more professional manner // use $_SERVER['QUERY_STRING'] to extract the query string from the url $queryStrings = [ 'lat=25.79&amp%3Blon=-80.16', 'lat=41.46u0026lon%3D-82.71', 'lat%5Cu003d30.31%5Cu0026lon%5Cu003d-89.33', 'lat=28.94-89.4&lon', 'tag%5Cu003d44' ]; foreach ($queryStrings as $queryString) { // replace unicode-like substrings $queryString = preg_replace_callback('/u([\da-f]{4})/i', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, urldecode($queryString)); // courtesy of Gumbo: https://stackoverflow.com/a/2934602/2943403 $queryString = strtr($queryString, ['&amp;' => '&', '\\' => '']); parse_str($queryString, $_GET); var_export($_GET); echo "\n"; }
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array ( 'lat' => '25.79', 'lon' => '-80.16', ) array ( 'lat' => '41.46', 'lon' => '-82.71', ) array ( 'lat' => '30.31', 'lon' => '-89.33', ) array ( 'lat' => '28.94-89.4', 'lon' => '', ) array ( 'tag' => '44', )

preferences:
148.4 ms | 408 KiB | 5 Q