Domanda

Gradirei un certo aiuto qui:

Quello che voglio fare:

& rimuovere ItemsPerPage = 10 da:

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

e creare un collegamento da esso:

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

ecco quello che sono venuto in mente finora:

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

le funzioni di quadro che sto usando sono:

url :: corrente () = restituisce URL corrente nel controller di formato / azione

URL :: sito () = restituisce URL assoluto cioè http: // localhost / sito / regolatore / azione

così devo togliere '& ItemsPerPage' dalla stringa risultante nella funzione http_build_query

, ma sto avendo problemi con la codifica dei caratteri e così via! per favore aiutatemi!

ecco il problema con codifica dei caratteri:

$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 ';'

Non riesco a rimuovere la stringa '& ItemsPerPage' dal risultato di http_build_query che è: 'Type = optional & page = 2 & ItemsPerPage = 10' e funzioni come uscite strstr niente

È stato utile?

Soluzione

Vorrei solo fare questo:

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

Poi basta utilizzare il codice, ma con la nuova variabile (e la ?):

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

Altri suggerimenti

Il HttpQueryString classe ha diversi metodi per ottenere, l'impostazione, modificare stringhe di query e 'tradurre' i loro set di caratteri.

È possibile ottenere l'effetto che stai cercando, eliminando l'elemento itemsperpage dalla matrice $_GET prima di costruire la stringa di query.

unset($_GET['itemsperpage']);

E poi basta utilizzare il codice è già scritto:

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

EDIT: ho letto male il tuo post. Pensavo volessi solo per togliere la coppia campo / valore dalla richiesta GET. Tutto quello che dovete fare è sovrascrivere il valore con il valore che si desidera:

$_GET['itemsperpage'] = 15;

E quindi utilizzare il codice già scritto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top