<?php
	function url($replace = array(), $url = 'x') {
		// De array $geturl zetten, deze zal later alle GET waarden bevatten
		$geturl = array();

		// De URL geschikt maken, zodat deze gebruikt kan worden (als er geen URL is ingevuld, dan word de huidige URL gebruikt)
		$url = $url == 'x' ? $_SERVER['PHP_SELF'] : $url;
		$explurl = explode('?', $url);

		$url = $explurl[0];
		$url = basename($url);

		// Als de opgegeven URL hetzelfde is als de URL van de pagina waar je nu op bent, dan zullen alle GET waarden
		// ... ook weer meedoen. Als je dit ook wilt bij een URL die niet gelijk is, gebruik dan de functie: url($_GET);
		if ($url == basename($_SERVER['PHP_SELF'])) {
			global $_GET;
			$geturl = $_GET;
		}

		// Hier worden de GET variabelen uit de opgegeven link gehaalt (stel je vult pagina.php?var=8 in,
		// ... dan komt die var=8 ook weer voor in de nieuwe URL)
		if (!empty($explurl[1])) {
			$explurl2 = explode('&', $explurl[1]);
			foreach ($explurl2 as $value) {
				$explvalue = explode('=', $value);
				$geturl[$explvalue[0]] = $explvalue[1];
			}
		}

		// Hier worden alle GET variabelen die ingevuld werden als GET variabelen omgezet.
		foreach ($replace as $key => $value) {
			$geturl[$key] = $value;
		}

		// Hier dan, eindelijk de final touch: Alle GET variabelen worden aan de URL toegevoegd.
		$newurl = $url;
		foreach ($geturl as $key => $value) {
			$newurl .= !empty($key) && !empty($value) ? htmlentities(($newurl == $url ? '?' :'&').$key.'='.urlencode($value)) : '';
		}
	return $newurl;
	}
?>