Funktion zum entfernen GET-variable mit php
habe ich diesen URI.
ich bin das Holen basename der URI mit dem folgenden code.
$basename = basename($_SERVER['REQUEST_URI']);
den obigen code gibt mir folgenden string.
index.php?Eigenschaften&status=av&page=1
ich würde mir wünschen, entfernen Sie die Letzte variable aus dem string ich.e &page=1
. bitte beachten Sie, dass der Wert für page
wird nicht immer 1
. in diesem Sinne würde ich wollen, schneiden Sie die variable auf diese Weise.
Trim von der letzten position der Zeichenfolge bis zum ersten Trennzeichen ich.e
&
Update :
Möchte ich entfernen &page=1
aus dem string, egal in welcher Lage es sich befindet.
wie mache ich das?
Was ist, wenn es
Kuck mal hier, das könnte helfen. stackoverflow.com/questions/1251582/...
ich würde wollen, um remove page (Seite entfernen
wenn Sie nur das tut, Paginierung, überprüfen
klingt gut, aber Sie sind zu erklären aus dem Zusammenhang gerissen. ich wusste, dass ich das machen könnte 🙂
index.php?properties&page=1&status=av
statt? Möchten Sie page
oder status
?Kuck mal hier, das könnte helfen. stackoverflow.com/questions/1251582/...
ich würde wollen, um remove page (Seite entfernen
wenn Sie nur das tut, Paginierung, überprüfen
$_GET['page']
und die Schrittweite.klingt gut, aber Sie sind zu erklären aus dem Zusammenhang gerissen. ich wusste, dass ich das machen könnte 🙂
InformationsquelleAutor Ibrahim Azhar Armar | 2011-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt daran herum zu hacken mit regulären Ausdrücken sollte man parse den string wie eine url (was es ist)
Nun entfernen Sie einfach den parameter
und den Wiederaufbau der url
Sehr schön, perfekt gearbeitet, auch für mich! Danke KingCrunch 🙂
InformationsquelleAutor KingCrunch
Es gibt viele Wege, die nach Rom führen. Ich würde es mit einer RegEx:
wenn Sie nur wollen, die
&page=1
-Typ-Parameter werden in der letzten Zeile wärewenn Sie auch loswerden wollen, die Möglichkeit, die Seite ist die einzige oder erste parameter:
&page=1
variable unabhängig von seiner position.preg_replace("/\&page=[0-9]+/i","",$myString); ... nur die Seite 🙂
index.php?page=123&properties&status=av
?Er wollte das match &, also in diesem enthalten war ... aber die Hölle, ich werde mich ändern 😉
index.php?momomomooonsterpage=123&properties&status=av
? (=>index.php?momomomooonster&properties&status=av
;)) Reguläre Ausdrücke haben viele Fallstricke. Ich möchte nicht in Verlegenheit bringen Sie, aber solche Dinge führt oft zu seltsamen Verhalten später, sind schwer aufzuspüren.InformationsquelleAutor ty812
Danke Jungs, aber ich glaube, ich habe gefunden die bessere Lösung, @KingCrunch hatte vorgeschlagen, eine Lösung, die ich erweitert und umgewandelt, es in Funktion. die unter-Funktion kann möglicherweise entfernen oder unset jedes URI-variable ohne regex-hacks verwendet werden. ich bin Entsendung es, wie es vielleicht jemand helfen.
betrachten Sie nun folgende uri
hoffe, das jemand hilft. und danke @KingKrunch für Ihre Lösung 🙂
InformationsquelleAutor Ibrahim Azhar Armar
Dokumentation für strrpos.
strrpos($_SERVER['REQUEST_URI'], '&')
dies gibt einen Fehler, als strrpos erwartet zwei parameter
Oops. Dank für, die. Bearbeitet.
obwohl dies funktionieren wird, aber es wird einfach entfernen Sie die Letzte Variable. ich bin leider nicht erklärt hat, dies vor, aber ich möchte zu trimmen
$page=1
unabhängig von seiner position, es kann auftreten, vorstatus=av
oder nach.Sie könnte sich wenigstens die motivation meine variable Namen, bevor Sie 'rip off' mein post direkt unter 😉
InformationsquelleAutor Kris Harper
Regex, die auf jede mögliche situation:
/(&|(?<=\?))page=.*?(?=&|$)/
. Hier ist der Beispiel-code:Ausgabe:
Regex-Erklärung:
(&|(?<=\?))
-- match ein&
oder eine?
, aber wenn es eine?
, legen Sie es nicht in das Spiel und ignorieren Sie es einfach (Sie nicht möchten, dass urls wieindex.php&status=av
)page=.*?
-- entsprichtpage=[...]
(?=&|$)
-- suchen Sie nach einem&
oder dem Ende der Zeichenkette ($
), aber nicht beinhalten, dass für den Ersatz (diese Gruppe hilft, die Vorherige zu finden Sie heraus genau dort, wo stoppen matching)Leider ist dies verursacht Probleme in PHP < 5.2.2
Besten Optionen ! Ich danke Ihnen sehr !
InformationsquelleAutor Gabi Purcaru
Könnte man einen RegEx verwenden (wie Chris schon sagt) aber es ist nicht die effizienteste Lösung (viel Aufwand die engine... es ist einfach zu tun mit einigen string-parsing:
Der trick ist, können Sie garantieren, dass
$page
stecken, am Ende? Wenn es ist - toll, wenn nicht..., was Sie gefragt haben, kann nicht immer das problem lösen.InformationsquelleAutor Rudu