Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: htmlentities e tag

  1. #1

    htmlentities e tag

    Allora, quesito:
    io ho del testo nel database, supponiamo cosi (Ciao a "tutti voi", il mio nome è Lorenzo)

    Supponiamo che io voglia stamparlo trasformando in html tutto tranne che i tag. E' corretto secondo voi fare così:


    Codice PHP:
    $stringa str_replace("</","?TAGAPERTURASLASHES?","$stringa"); 
    $stringa str_replace("<","?TAGAPERTURANORMALE?","$stringa"); 
    $stringa str_replace(">","?TAGCHIUSURA?","$stringa"); 
    $stringa htmlentities($stringa);
    $stringa str_replace("?TAGAPERTURASLASHES?","</","$stringa");  
    $stringa str_replace("? TAGAPERTURANORMALE?","<","$stringa");  
    $stringa str_replace("? TAGCHIUSURA?",">","$stringa"); 
    Che dite? C'è un metodo più semplice??

  2. #2
    Che cosa intendi per "trasformando in html tutto tranne che i tag"?

    Il codice che hai indicato è già HTML.

  3. #3
    Visto che da database va inserito in una pagina htlm i caratteri vanno codificati (è = &egrave e così via.

    Se però uso htmlentities() trasforma anche i tag (< = &lt

  4. #4
    htmlentities() NON convert è in & grave; ...

    In ogni caso puoi utilizzare la "codifica" UTF8 per salvare ed utilizzare è direttamente nel DB e nella pagina web.

    In alternativa, utilizza una funzione come questa:

    http://www.zend.com//code/codex.php?ozid=835&single=1

  5. #5
    Ciao, usa to_db per convertire tutto in testo sicuro per database, e poi quando devi visualizzare di nuovo i dati li riconverti in html tramite 'from_db'..

    Codice PHP:
    function to_db($decoded) {
        return 
    htmlentitiesstripslashestrim($decoded) ), ENT_QUOTES );
    }
    function 
    from_db($encoded) {
        return 
    strtr($encoded,array_flip(get_html_translation_table(HTML_ENTITIES,ENT_QUOTES)));

    Occhiali da Sole www.OtticaGold.it
    Marche: Diesel, Dior, Emporio Armani, Gucci, Oakley, Oxydo, Police, Ray-Ban, Roberto Cavalli, Valentino, Vogue - Per le altre... cerca su google.it

  6. #6
    htmlentities() NON convert è in & grave; ...
    Certo che lo fa...

  7. #7
    Scusate, mi sono espresso male. Certo che lo fa, su certi charset. Intendevo dire che se vuole una soluzione che funzioni con tutti i charset (es. non solo l'ASCII compatibile con gli 8-bit Unicode, ad esempio per supportare lingue asiatiche), dovrebbe utilizzare altre funzioni.

    Se gli bastano i charset supportati da htmlentities, può provare un codice tipo:

    Codice PHP:
    <?php 
    $content 
    'Ciao a "tutti voi", il mio nome è [b]Lorenzo[/b]';
    $fake_content '>' $content '<';
    $fake_content preg_replace('#>([^<]*)<#e'"'>' . htmlentities(stripslashes('\\\\1')) . '<'"$fake_content);
    $content substr($fake_content1, -1);           
    print(
    $content);
    ?>

  8. #8
    Intanto grazie mille,
    io e le espressioni regolari siamo molto nemici !

    Farò sapere...

  9. #9
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Originariamente inviato da vla
    Ciao, usa to_db per convertire tutto in testo sicuro per database, e poi quando devi visualizzare di nuovo i dati li riconverti in html tramite 'from_db'..

    Codice PHP:
    function to_db($decoded) {
        return 
    htmlentitiesstripslashestrim($decoded) ), ENT_QUOTES );
    }
    function 
    from_db($encoded) {
        return 
    strtr($encoded,array_flip(get_html_translation_table(HTML_ENTITIES,ENT_QUOTES)));

    ciao, ma queste funzioni to_db e from_db sono del php?

  10. #10
    Se fossero del PHP non ci sarebbe bisogno di definirle.

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.