Zum Inhalt springen

[PHP] Parameter aus URL entfernen


Empfohlene Beiträge

Hallo zusammen,

ich suche gerade eine Möglichkeit aus einer URL einen Parameter herauszuschneiden.

z.b.


$url = "http://forum.fachinformatiker.de/newthread.php?do=newthread&f=31";
echo strip_url_param( $url, 'do');
// Ausgabe: http://forum.fachinformatiker.de/newthread.php?f=31
[/PHP]

Nun hab ich mir das ganze mit ein paar paar aufrufen von substr, strpos etc zusammengeschnippselt, aber da ich diese Funktion recht oft verwende, würde es mich interessieren, ob es nicht eine performantere Lösung dafür gibt.

Bin dankbar für jeden Tipp!

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich suche gerade eine Möglichkeit aus einer URL einen Parameter herauszuschneiden.

Ich hab hier eine funktion geschrieben, die sowas ähnliches tut. Damit kann man eine URL aufbauen und eigene Parameter daranhängen, Parameter ersetzen oder entfernen. Es wird immer dieselbe Seite aufgerufen, nur mit anderen Parametern (index.php?bla=blubb):


// function getURLString($arReplace)
// liefert einen Parameter-String für die URL-Übergabe
// und ersetzt dabei die in einem Array übergebenen Werte
// Der überge Parameter $arReplace ist ein assoziatives Array
// der Form (Parameter => Wert)
function getURLString($arReplace, $resetParams = False)
{

$get = $_GET;

// Dateiname aus URL extrahieren
$index_str = $_SERVER["PHP_SELF"];
$index_pos = strpos($index_str, "/", 1);
if ($index_pos!==false)
{
$index_str = substr($_SERVER["PHP_SELF"], 0, $index_pos);
}
$result = $index_str."?";

// Parameter nicht übernehmen, nur Parameter aus $arReplace nutzen
if ($resetParams)
{
foreach($arReplace as $ip_key => $ip_val)
$result .= $ip_key."=".$ip_val."&";
}
else // alle vorhandenen Parameter weiter nutzen
{
// übergebene Parameter setzen und evtl. ersetzen
if (isset($arReplace))
{
foreach($arReplace as $ip_key => $ip_val)
$_GET[$ip_key] = $ip_val;
}
// String aufbauen
foreach($_GET as $ip_key => $ip_val)
// Parameter ohne value nicht weiter nutzen
if ($ip_val!="")
$result .= $ip_key."=".$ip_val."&";
}
$_GET = $get;

return $result;
}

[/php]

Das funktioniert hier auch so wie es soll. Erstmal werden alle Parameter belassen wie sie sind und nur evtl. neue drangehängt. Wenn resetParams==True ist, werden nur evtl. neue drangehängt. Werden Parameter ins Array $arReplace mit leeren Value geschrieben, wird dieser Parameter gelöscht. getURLString(null) liefert eine URL ohne Parameter.

Weiss nicht, ob das das ist, was du suchst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...