- Home
- Categorie
- Coding e Sistemistica
- Coding
- Recuperare un pezzetto di $_SESSION[REFERER]
-
Recuperare un pezzetto di $_SESSION[REFERER]
Salve ragazzi!
sto cercando di farmi uno script per le mie statistiche.... ho ora un problemino che in parte ho risolto, ma ora non riesco più a continuare...
mi son studiato un po di funzioncine, e sono arrivato a questo strepitoso codice...
[php]$q=explode("q=","$_SESSION[REFERER]");[/php]in questo modo mi recupera tutto quello che viene dopo "q="... il problema è ora questo: google utilizza altre variabili e l'url è molto lungo dove ci sono tante altre info, ad esempio:
http://www.google.it/search?q=forum+giorgiotave&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillaofficial&client=firefox-a
con il codice sopra descritto, la stringa che mi ritrovo è questa:
forum+html&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillafficial&client=firefox-a
ora non mi rimane altro che (
) eliminare tutto quello che viene dopo la prima "&" quindi questo:
&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillaofficial&client=firefox-a
dopo dichè dovrebbe esistere una funzione, che ora non ricordo, che mi fa la "sottrazione" tra due stringhe, ma il problema è proprio cercare di tirare fuori questo &ie=utf-8&oe=utf-8&...
ho allora provato a explodare ancora il risultato $q con questo:
codice PHP:[php]$e=explode("&",$q);[/php]ma pare non rilevarmi il carattere &...mi aiutate?
grazie!
-
Da questa pagina dove c'è un esempio analogo sembra che funzioni anche con i doppi apici come hai usato.
-
@mister.jinx said:
Da questa pagina dove c'è un esempio analogo sembra che funzioni anche con i doppi apici come hai usato.
allora...ho fatto una cinquantina di test e sono un po fuso comunque il codice completo che ho utilizzato è:
[php]
$q=explode("q=","$_SESSION[REFERER]");
$e=explode("&",$q[1]);
$key=$e[0];
print("$key");
[/php]il funzionamento è, quindi:- con il primo explode, da $_SESSION[REFERER] prende tutto quello che c'è dopo "q=" e quindi "forum+giorgiotave&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla
official&client=firefox-a"
- recupero la variabile $q con valore dell'array [1] (con il valore a [0] corrisponderebbe la stringa "http://www.google.it/search?" e quindi non me ne farei nulla...) e prendo con il valore dell'array a [0] quello che viene prima del primo "&"... in questo modo rimane solo il valore effettivamente contenuto tra il "q=" e "&" che corrisponde alla ricerca effettuata.
il mio errore stava nel fatto che nel secondo explode andavo a prendere l'array senza posizione (quindi senza [0]) che giustamente non poteva andare...
scrivo qui sotto tutte le info sulle diverse variabili possibili, in modo da rpendere più facile la comprensione a chi non ci avesse capito niente.... (data l'ora ed il livello di rinc*** potrei essermi spiegato male), magari con gli esempi testuali ci si arriva meglio...
[php]
// Il $_SESSION[REFERER] di partenza è
// http://www.google.it/search?q=forum+giorgiotave&ie=utf-8&client=firefox-a$q=explode("q=","$_SESSION[REFERER]");
// $q[0] --> http://www.google.it/search?
// $q[1] --> forum+giorgiotave&ie=utf-8&client=firefox-a$e=explode("&",$q[1]);
// $e[0] --> forum+giorgiotave
// (a titolo informativo:
// $e[1] --> ie=utf-8
// $e[2] --> client=firefox-a )$key=strtr("$e[0]","+"," ");
/* Sostituisco con uno spazio (Facoltativo: se non mi serve
o non voglio il carattere + all'interno della stringa) e Passo il
contenuto dell'array alla variabile $key */print("$key");
// Stampo la variabile $key[/php]con questo metodo ho risolto, anche se leggermente macchinoso... se naturalmente avete altre soluzioni...rimango in ascolto...
ciao!
- con il primo explode, da $_SESSION[REFERER] prende tutto quello che c'è dopo "q=" e quindi "forum+giorgiotave&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla