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

    str_replace su POST: non funziona

    Ciao a tutti, ho la conferma che effettuare un str_replace di qualsiasi cosa su una stringa proveniente dal POST non funziona. O meglio, io sto cercando di sostituire dei caratteri accentati con i corrispettivi caratteri senza accento + apice (esempio: à -> a').
    E' capitata anche a voi una cosa simile?
    Può essere un problema di charset, che ho specificato in tutte le pagine come ISO-8859-1?

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Credo dipenda da come operi: non credo tu possa modificare $_POST, ma se assegni il suo valore ad una variabile non dovresti avere problemi.

    Luca

  3. #3
    Ciao Luke, io intendevo proprio una cosa tipo

    Codice PHP:
    $txt str_replace("à","a'",$_POST['testo']) 
    .... ti giuro che non funziona!

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Hai provato a mettere \ davanti alla '?

  5. #5
    Sì ho provato, ma niente da fare. E' come se non trovasse la lettera "à". Ho provato a passare anche il numero HTML (à = à) ma nada.


  6. #6
    mucho strano,

    prova così
    [code]
    print"

    input: $_POST[testo]</p>"; //giusto per vedere che non sia vuota

    $post_text="$_POST[testo]";

    $text=str_replace("à","a'","$post_text");

    print"

    output: $text</p>";
    [code]

    io comunque in genere consiglio di usare &agrave; al posto di à, così come èéìòù. meglio usare il loro valore html, almeno per esperienza così mi sono trovato molto meglio
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  7. #7
    Ciao Michele, ho testato la tua soluzione di mettere il contenuto del POST in una nuova variabile ma... senza risultati

    Ho provato però a sostiuire una qualsiasi altra parola che non fosse una lettera accentata (per esempio "casa") e ha funzionato senza problemi.

    Dunque il problema si presenta con le lettere accentate.

    Soluzione un po' temporanea:

    Ho sostitutito le lettere accentate con le corrispettive entità html


    Codice PHP:
    $txt htmlentities($_POST['testo']); 
    e quindi ho sostituito le entità html con quello che volevo io

    Codice PHP:
    $txt str_replace("&agrave;","a'",$txt); 
    Peccato che così si aggiunga un passaggio in +... beh speriamo sia utile a qualcuno

  8. #8
    Soluzione (spero)più intelligente.

    Convertire in utf-8 - > cercare e sostituire la lettera "à" -> ri-convertire il tutto in ISO



    Codice PHP:
    $txt utf8_decode(str_replace("à","a'",utf8_encode($_POST['testo']))); 

  9. #9
    quando usi caratteri accentati direttamente a video come àèé, ecc, dipende anche dalla codifica della pagina, dalla dtd. che ti frega del passaggio in più? se arriva da post non è rilevante. non credo che l'utente invii tramite post N variabili. quindi la complessità dell'algoritmo in quel frangente è costante. . .hai perso un millisecondo!

    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

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.