Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Come far funzionare il replace col =$_GET[id];

    Ciao.

    Ho un problema con Google che mi ha trasformato tutti gli url con caratteri accentati: per cui la "é" diventa "%C3%A9"

    Quindi se io ho creato un url del tipo:
    www.sito.com/articolo.php?id=delumé

    durante l'indicizzazione il link è diventato
    www.sito.com/articolo.php?id=delum%C3%A9

    Il risultato: poichè la richiesta a mysql gira attraverso il =$_GET[id]; del nome dell'articolo, il record non viene recuperato. Internamente non ho problemi: i link vengono seguiti regolarmente ed i caratteri accentati vengono visualizzati bene sia nel titolo che nel contenuto della pagina.

    Avevo pensato a qualcosa del tipo:

    codice:
    <?
    $stringabase=$_GET[id];
    $stringa = preg_replace("%C3%A9", "é", $stringabase);
    ?>
    Ma non funziona: il risultato è la cancellazione di tutta la parola "delumé" invece di operare la sostituzione di "%C3%A9" co "é".

    Qualche aiuto?

  2. #2
    urlencode()
    urldecode()

  3. #3
    Grazie li ho provati ma non funzionano.
    Nel frattempo ho trovato "utf8_decode" che mi risolve il problema dal lato Google ma mi crea problemi lato server, nel senso che se vado a seguire il link interno a ...
    www.sito.com/articolo.php?id=delumé

    una volta decodificato con "utf8_decode" diventerà ...
    www.sito.com/articolo.php?id=delum?

    E siamo al punto di partenza.

    Qualche idea?

  4. #4
    $url = utf8_decode(urldecode($url));

  5. #5
    grazie, provata anche questa ma sempre il problema del ? seguendo i link interni con gli accenti.
    Bisognere impostare una variabile in grado di applicare o meno l'utf8_decode solo nel caso in cui la stringa abbia i caratteri speciali.
    Nel senso che se la stringa è: delume non transita dal utf_decode,
    se invece la stringa è delum%C3%A9 transita dall'utf_decode.

    Ma come?

  6. #6
    se l'$url è identico all'urldecode($url) allora non c'è bisogno di fare anche utf8_decode()

  7. #7
    Nemmeno così va. Credo che sia impossibile recuprare col =$_GET[id]; valori del tipo "%C3%A9"

    Allora l'unica cosa che mi viene in mente è questa:

    recupero l'url con:

    $url=$_GET[id];

    verifico se in $url ci sono caratteri accentati (è,é,ò,à,ù,ì ed altri simili)

    se non ci sono mi faccio:

    $urldue = utf8_decode($url);

    se ci sono:

    $urldue = $url;


    Credo che così debba funzionare.

    Purtroppo non so scrivere questo codice.
    Un ultimo aiuto, grazie.

  8. #8
    Originariamente inviato da dino2004
    Nemmeno così va. Credo che sia impossibile recuprare col =$_GET[id]; valori del tipo "%C3%A9"
    Ti sbagli, ho appena provato e funziona perfettamente.

    Intanto devi usare $_GET['id'], con gli apici.

    Comunque ho provato questo, usando come id delum%C3%A9 e funziona perfettamente:

    $sito = $_GET['id'];
    echo $sito."
    ";
    echo urldecode($sito).'
    ';
    echo utf8_decode(urldecode($sito));

  9. #9
    Credo che ci possa essere qualche problema nella configurazione del server, perchè con me non va.

    Ho provato così:


    $url=$_GET[id];
    if (strpos($url, "é")===FALSE)
    $urldue=utf8_decode($url);

    else
    $urldue=$url;


    E finalmente funziona sia lato Google che lato server.
    Grazie ancora.

  10. #10
    Purtroppo mi sono accorto che nel database sono presenti altre vocali accentate: è,à,ù ecc. che se inserite in questo modo ...

    codice:
    $url=$_GET[id]; 
    if (strpos($url, "éèàù")===FALSE) 
    $urldue=utf8_decode($url); 
    
    else 
    $urldue=$url;
    vengono considerate come unica parola e falsano il risultato.
    C'è qualche altra funzione simile in grado di gestirle tutte insieme ma non considerandole come unica parola?
    Oppure anche di implementare la funzione di cui sopra in grado di farle prendere più variabili?
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.