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

Discussione: [PHP] Conversione html

  1. #1

    [PHP] Conversione html

    Ciao a tutti!
    Ho un problemino. In php devo creare una funzione che mi sostituisca alcuni caratteri (à è ò ù ecc ecc) con le rispettive entità html. le funzioni che php dà non servono a molto visto che non convertono le lettere accentate. io ho già una funzione replace() a cui si passa il testo come argomento e che ritorna il testo convertito. fin qui nessun problema. però devo convertire anche i caratteri " < > e il testo che passo io al replace() è html! esempio:
    codice:
    
    questo è un testo bla bla bla bla</p>
    
    
    
    Immagine:</p>[img]bla.gif[/img]
    se io uso replace() anche i tags mi vengono trasformati e quindi se io faccio un echo invece di vedere il testo formattato e l'immagine vedo i tag.
    come posso fare per risolvere il problema?

    grazie e ciao!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    htmlentities?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    se escludiamo il fatto che non mi converte quello che volgio io (alcuni caratteri me li converte ma le lettere accentate no), comunque mi converte anche il tag html.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    allora usa un preg-replace con le entità che vuoi convertire? Tedioso ma funziona
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    mettiamo che io devo convertire il testo

    ciao</p> se uso str_replace mi replaca anche i < e > "legittimi" e mi viene visualizzato il codice non il testo formattato... e che cos'ha di differente preg_replace? cioè come faccio una espressione regolare utile per questo scopo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per esempio, se in $str c'è il tuo testo, che contiene lettere accentate che vuoi trasformare in entità html:

    codice:
    $testoentita = preg_replace(array("à","è","ì","ò","ù","é"),array("&a grave","&e grave","&i grave","&o grave","&u grave","&e acute"), $str);
    togliendo gli spazi nel secondo array
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    io non ho problemi a trasformarle, che faccio tramite un array, un ciclo foreach e un str_replace. il problema è che quando faccio il replace dei caratteri < > e " vanno a farsi benedire i tag html, cioè diventano visibili invece di formattare il testo!
    capito ora?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    teoricamente potresti scandire il codice html e sostituire solo i caratteri accentati che si tovano all'inteno dei delimitatori,tipo:

    <tag>quelli che stanno stra "<" qui ">" li salti,quelli che si trovano in qualche modo all'esterno dei
    ">"qui"<" li fai formattare con un replace e compagnia bella...questa è solo teoria ma non saprei sinceramente ora come ora come creare questo controllo

  10. #10
    una soluzione artigianale è una pazzia... metti che ho:
    codice:
    
    test e immagine [img]img.jpg[/img]</p>
    mi sostituirebbe anche il tag img... a questo punto potrei usare il parser xml.. peccato che quello di php è tosto!

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.