Frage

Ich würde etwas Hilfe schätzen hier:

Was ich tun möchte:

entfernen & ItemsPerPage = 10 aus:

http: //localhost/thi/search/filter.html ? type = kennzeichnete & page = 2 & ItemsPerPage = 10

und erstellen Sie einen Link von ihm:

http: //localhost/thi/search/filter.html ? type = kennzeichnete & page = 2 & ItemsPerPage = 15

Hier ist, was ich mit so weit gekommen sind:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET) // don't know what follows ?>"

die Rahmenfunktionen Ich verwende sind:

url :: current () = gibt aktuelle URL in controller / action-Format

url :: Website () = kehrt absolute URL dh http: // localhost / site / controller / action

also muss ich entfernen '& ItemsPerPage' aus dem resultierenden String in der http_build_query Funktion

, aber ich habe Probleme mit Zeichenkodierungen und so! Bitte helfen Sie!

hier ist also das Problem mit Zeichencodierung:

$needle = '&itemsperpage';

        $querystring = http_build_query($_GET) . '<br/>';

        // echo $querystring . '<br/>';

        $pos = strpos($querystring, $needle);

        $remove = substr($querystring, ((int)$pos));

        echo substr(str_replace($remove, '', $querystring), 1); // returns ';'

Ich kann die Zeichenfolge nicht entfernen ‚& ItemsPerPage‘ aus dem Ergebnis der http_build_query das ist: 'Type = kennzeichnete & page = 2 & ItemsPerPage = 10' und Funktionen wie strstr gibt nichts

War es hilfreich?

Lösung

Ich würde dies nur tun:

$array = $_GET;
$array['itemsperpage'] = 15;

Dann benutzen Sie einfach Ihren Code, aber mit den neuen Variablen (und den ?):

<a href="<?php echo url::site(url::current()) . '?' . http_build_query($array)">

Andere Tipps

Die HttpQueryString Klasse verfügt über mehrere Methoden für das Erhalten, Einstellung, Modifizieren Query-Strings und 'übersetzen' ihre charsets.

Sie können den Effekt erzielen Sie suchen, indem Sie den itemsperpage Element aus der $_GET Array zu entfernen, bevor die Query-String zu bauen.

unset($_GET['itemsperpage']);

Und dann benutzen Sie einfach den Code, den Sie schon schrieb:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET); ?>">

EDIT: ich falsch gelesen Ihren Beitrag. Ich dachte, Sie nur das Feld / Wert-Paar der GET-Anfrage entfernen wollten. Alles, was Sie tun müssen, ist der Wert mit dem Wert überschreiben Sie wollen:

$_GET['itemsperpage'] = 15;

Und dann verwenden Sie den Code, den Sie bereits geschrieben haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top