Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39

    testi dinamici formattati html:

    Ciao a tutti.

    Ho dei testi a db formattati in html contenenti dei caratteri speciali es:
    <h1>titolo</h1>
    contenuto.........à............ì.........ù.....
    parola
    .......................

    Il mio problema non sono tanto i caratteri speciali, in quanto quando richiamo il testo da db gli applico la htmlentities es:

    echo htmlentities($row_testo[contenuto], ENT_QUOTES);

    Ma quanto alla formattazione html. Applicando la htmlentities, mi stampa a video anche <h1>.. [b].. e quindi non mi applica la formattazione.

    Come posso fare ad usare testi dinamici formattati html con caratteri speciali?

    Grazie in anticipo,
    Mauro.

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Prova a sostituire solo i caratteri accentati in modo da lasciare inalterati i vari tag html contenuti nel testo.

    Codice PHP:
    $str str_replace(array('à''è''é''ì''ò''ù'),
                       array(
    '&agrave;''&egrave;''&eacute;''&igrave;''&ograve;''&ugrave;'),
                       
    $str); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    Ciao, ho provato a sostituire solo i caratteri speciali, ma sbaglio qualcosa..

    Tabella db: testo(..., contenuto), contenuto è di tipo text

    //estraggo il contenuto di "contenuto", lo converto e lo stampo,...ma??
    while($row_converti=mysql_fetch_array($converti)){
    $row_converti[contenuto]= str_replace(array('à', 'á', 'è', 'é', 'É', 'ì', 'ò', 'ù', '´', '"', '°'),array('&agrave;', '&aacute;', '&egrave;', '&eacute;', '&Eacute;', '&igrave;', '&ograve;', '&ugrave;', '&acute;', '&quot;', '&deg;'),$row_converti[contenuto]);

    echo $row_converti[contenuto];
    }

    Sapete aiutarmi per caso?
    grazie

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Prova a descrivere meglio il problema, così non è chiaro cosa c'è che non va. Ricevi qualche errore o cosa?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    allora, cerco di spiegarmi meglio:

    voglio salvare a database un testo contenente dei caratteri speciali ed anche del codice html. es:
    <h1>titolo testo</h1>
    testo... è, quì... più.... "..." ...testo

    ho creato la seguente tabella nel db: testo(..., contenuto) che ha un campo "contenuto" di tipo text

    quando estraggo e stampo "contenuto" non mi stampa i caratteri speciali, es:

    //connessione a db e query
    $db = connection();
    $query="SELECT * FROM tabella ORDER BY data DESC";
    $iniziative=mysql_query($query,$db);

    //stampo i risultati
    while($row_iniziative=mysql_fetch_array($iniziativ e)){
    echo $row_iniziative[contenuto];
    }

    output di esempio:
    L�Associazione �In compagnia del Girasole Onlus� :
    Hanno in programma, per il giorno 02 dicembre 2006 , una serata di beneficenza con la presentazione del libro �Vivere nel cuore di chi resta, significa non morire mai�. La raccolta fondi sar� devoluta alla S.O.S per l�acquisto di un�ambulanza con rianimazione in nome di ..., che operer� sul territorio di.... Il tutto sar� ufficializzato dalla stampa e dai mezzi di comunicazione nei prossimi giorni ad accordi ultimati.


    come posso applicare al mio esempio la funzione che mi hai detto prima?
    $str = str_replace(array('à', 'è', 'é', 'ì', 'ò', 'ù', '´', '"'),
    array('&agrave;', '&egrave;', '&eacute;', '&igrave;', '&ograve;', '&ugrave;', '&acute;', '&quot;'),
    $str);

    ho provato, ma non funziona. In caso hai altre soluzioni?

    Ti ringrazio.

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    se utilizzi phpmyadmin, dopo aver inviati i dati, guarda nel campo 'contenuto' della tua tabella in che modo è stato inserito il testo. potrebbe essere un problema di codifica del set di caratteri. quale collation stai utilizzando?

    comunque, prova a riutilizzare di nuovo la funzione htmlentities() quando inserisci i dati

    $testo = htmlentities($_POST['testo']);

    poi quando li estrai applichi la funzione html_entity_decode() al testo

    $testo = html_entity_decode($row_iniziative['contenuto']);

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    39
    Ciao, problema risolto, grazie!!!

    Ho fatto come hai detto tu e tutto funziona.
    Di default il mio mysql non mi metteva il collation utf8, l'ho cambiato ed ora tutto ok.



    Mauro.

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.