Parameter aus Url loeschen

Suchfunktion

Erfahrenes Mitglied
Hi!

Ich moechte einen Parameter (&foo=245) aus meiner Url (string: $url) loeschen.

Beispiel:
Ist: http://www.foo.de/index.php?id=4&lorem=2476&ipsum=12&foo=245&bar=4
Soll: http://www.foo.de/index.php?id=4&lorem=2476&ipsum=12&bar=4

Wie zun sehen ist, moechte ich einfach den gesamten "&foo=245"-Block aus der Url entfernen. (Dabei kann der Wert "245" einstellig, zweistellig, usw. sein. Also keine feste Anzahl an Zeichen. Und der Parameter $foo steht auch nicht immer an vorletzter Stelle. Es koennen beliebig viele davor und dahinter stehen.)

Ich weiss nicht wie ich das machen soll.
Any idea?

mfg
Suche
 
Als erstes suchst du &foo= mit seinem Wert:

PHP:
$uri = "http://www.foo.de/index.php?id=4&lorem=2476&ipsum=12&foo=273&bar=4";
preg_match("/foo=([0-9]+)/", $uri, $findus);
echo $findus[0];

Ausgabe: &foo=273

jetzt nimmst du dir die Funktion von Hier und löschst &foo aus der URL. ;)
 
Aaaaaaaaaaah Ihr seid so geil :D :D :D
Regulaere Ausdruecke hatte ich auch schon vermutet, aber damit komm ich voll nicht klar. Noch nicht. (Muss ich mir umbedingt mal "antun".)

Danke, danke, danke :-)
*closed*
 
Null Problemo aber für das *closed* gibts was besseres, nen "Erledigt"-Button, einfach *klick* und fertig. ;)
 
Null Problemo aber für das *closed* gibts was besseres, nen "Erledigt"-Button, einfach *klick* und fertig. ;)

Viel mir auch grad ein, dass ich's vergessen hab :-P
Schon erledigt.
(Hui, due Funktion is sooo geil.. erpart mir stundenlange Arbeit.. hehe. Nur das mit den Regex brauchte ich nicht. Musste ja nur das Attribut loeschen :-) )
 
Eine andere Lösung:
PHP:
$parts = explode('?', $url);
if( isset($parts[1]) ) {
	parse_str($parts[1], $args);
	var_dump($args);
	unset($args['foo']);
	foreach( $args as $key => $val ) {
		unset($args[$key]);
		$args[] = rawurlencode($key).'='.rawurlencode($val);
	}
	$parts[1] = implode(ini_get('arg_separator.output'), $args);
}
$url = implode('?', $parts);
 
Zurück