<?php
// Everything you enter here will be executed by our servers. Try it!
function smartUrlEncode($url) {
if (strpos($url, '=') === false) {
return $url;
} else {
$startpos = strpos($url, "?");
$tmpurl = substr($url, 0, $startpos + 1);
$qryStr = substr($url, $startpos + 1);
$qryvalues = explode("&", $qryStr);
foreach ($qryvalues as $value) {
$buffer = explode("=", $value);
$buffer[1] = urlencode($buffer[1]);
}
$finalqrystr = implode("&", $qryvalues);
$finalURL = $tmpurl . $finalqrystr;
return $finalURL;
}
}
$urls_to_test = array(
'https://www.google.de/search?q=php+implode&x=2',
'https://www.google.de/search?q=php+implode&t=453',
'http://google.de/search?q=1&t=2&',
'//google.de/search?q=1&t=2+asdf&r=qwertz+asdf',
'index.php?r=1&t=4&e=1'
);
foreach($urls_to_test as $url) {
//echo smartUrlEncode($url);
}
echo smartUrlEncode('https://www.google.de/search?q=php+implode&x=2');
preferences:
35.15 ms | 402 KiB | 5 Q