Veröffentlicht 16. Oktober 200519 j 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
16. Oktober 200519 j 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.
17. Oktober 200519 j 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
17. Oktober 200519 j performance bei stringoperationen? bitte mal die differenz [am besten in ns] mitteilen.
18. Oktober 200519 j 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.