Visualizzazione risultati 1 fino 6 di 6

Discussione: Sostituire segno "&"

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito Sostituire segno "&"

    Ciao a tutti!
    Avrei bisogno di un codice per sostituire il segno "&" per passare dei valori tramite $_GET.
    Avevo pensato ad & ma, ovviamente, ottengo lo stesso risultato.
    Grazie anticipatamente.

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se vuoi inviare qualcosa via url, devi sempre passarlo attraverso urlencode() (e poi passare il link ad htmlentities(), se lo metti in una pagina)
    Ultima modifica di alemoppo : 09-02-2012 alle ore 19.49.33 Motivo: corretto link

  3. #3
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Scusa ma non capisco.
    Dovrei fare:
    Codice PHP:
    $valore = "&";
    $val = urlencode($valore)
    echo
    "<a href=\"page.php?get=".$val."\">Qui</a>";
    E poi lo decripto tramite htmlentities().
    Codice PHP:
    $valore = $_GET['get'];
    $val = "Valore mandato: ".htmlentities($valore);
    echo
    $val;
    Grazie, ciao!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    No, entrambe le funzioni vanno usate quando crei la pagina: urlencode trasforma una stringa
    in un qualcosa che può essere messo in un parametro $_GET (codifica spazi, &, ed alcuni altri caratteri);
    se poi vuoi mettere il link in una pagina, devi codificarlo di nuovo con htmlentities, in modo che non
    crei problemi nella pagina

    stringa -> urlencode() -> stringa che puoi usare in un url

    url -> htmlentities() -> url che puoi mettere in una pagina

    quindi
    Codice PHP:
    $link = 'page.php?get=' . urlencode($valore);
    echo
    '<a href="' . htmlentities($link) . '">Qui</a>';
    Edit: dall'altra parte non devi fare nulla per "deconvertire" quello che ti arriva: il browser converte il lavoro
    fatto da htmlentities quando ti mostra la pagina, e sempre il browser converte il lavoro fatto da
    urlencode quando clicchi sul link e richiedi la pagina di destinazione.


    Btw, non è buona pratica chiamare i link "qui", "qua", "questa pagina". Se hanno un testo specifico
    è meglio, sia per l'utente (che magari legge di corsa e guarda solo i link colorati) che per i motori di
    ricerca (che hanno più keyword da associare alla pagina di destinazione).

    E.g. invece di scrivere "trovi le istruzioni <a>qua</a>" è meglio "qua trovi le <a>istruzioni</a>".
    Ultima modifica di dreadnaut : 09-02-2012 alle ore 20.04.46

  5. #5
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ciao!
    Quello del link sul "clicca qui" era solo un esempio, ma grazie per avermelo detto (non lo sapevo).
    Non ho ben capito a che serva htmlentities() dato che l'URL resta tale e quale...
    C'è una funzione che fa tornare i segni come erano prima?
    Thanks!
    Ultima modifica di radiodelmomento : 11-02-2012 alle ore 19.10.17

  6. #6
    Guest

    Predefinito

    html_entity_decode()


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •