Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Parameter aus URL entfernen

Empfohlene Antworten

Veröffentlicht

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

Ich hab sowas in der Art mal mit nem preg_replace gelöst:


$datinhalt=preg_replace("/([&\?]PHPSESSID=)([^&^\"]+)/i","",$datinhalt);
[/php]

Bei mir wurde aus einer HTML-Quelldatei in den Links die PHPSESSID entfernt.

Vielleicht hilfts dir ja. :)

Hi,

danke für den Tipp!

Nun ist nur noch die Frage, wenn ich immer nur auf Strings bis max 150 Zeichen losgehe, ob da nicht diese SUBSTR geschichte performanter ist...

Gruß,

Markus

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.