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

Discussione: Replace tag html

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Replace tag html

    visualizzando del testo estratto con una query, faccio
    codice:
    $testo = str_replace("[", "<", $row['testo']);
    $testo = str_replace("]", ">", $row['testo']);
    echo $testo
    per avere la formattazione html. Solo che, come tag di apertura, resta la parentesi quadra, quindi il testo non viene formattato. Invece il tag di chiusura viene tranquillamente trasformato da ] a >.
    :master:

  2. #2
    $testo = str_replace("[", "<", $row['testo']);
    $testo = str_replace("]", ">", $testo);
    echo $testo

    prova così...
    I'm your dreams, make you real... I'm your eyes when you must steel...I'm pain when you can't feel...sad but true !

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    così va... ma facendo la stessa cosa per un campo di testo visualizza:
    <;i>nome<;/i>
    cioè aggiunge un punto e virgola

  4. #4
    sei sicuro che il ; viene aggiunto e non è già presente ?
    I'm your dreams, make you real... I'm your eyes when you must steel...I'm pain when you can't feel...sad but true !

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    ok non aveva preso la modifica alla pagina: ho riavviato l'applicazione e ora è corretto. Grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    ora il problema è: in quel modo va bene se ci sono solo due caratteri da sostituire, ma se devo sostituire i vari tags?

    $testo = str_replace("[ i ]", "", $row['testo']);
    $testo = str_replace("[ /i ]", "
    ", $row['testo']);
    $testo = str_replace("[ b ]", "", $row['testo']);
    $testo = str_replace("[ /b ]", "
    ", $row['testo']);
    //ecc.


    prende sempre l'ultima occorrenza (in questo caso formatterà solo il grassetto).

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    leggi bene le risposte

    $testo = str_replace("[ i ]", "", $row['testo']);
    $testo = str_replace("[ /i ]", "
    ", $testo);
    $testo = str_replace("[ b ]", "", $testo);
    $testo = str_replace("[ /b ]", "
    ", $testo);

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    quindi solo la prima stringa deve essere diversa dalle successive

  9. #9
    Tu hai la stringa $row['testo'], con la prima riga istanzi l'ugualianza

    $testo = $row['testo'];

    ora, se fai dei replace successivi devi per forza utilizzare la stessa variabile, altrimenti PHP usera' l'ultimo valore.

    se fai

    $testo = $row['testo'];
    $testo = str_replace("[ i ]", "", $testo);
    $testo = str_replace("[ /i ]", "
    ", $testo);
    $testo = str_replace("[ b ]", "", $testo);
    $testo = str_replace("[ /b ]", "
    ", $testo);

    fai meno confuzione
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    capito
    In pratica devo permettere solo alcuni tags in una textarea, finchè si tratta di tag b, u ecc.. bene. Quando poi devo sostituire <a href, <img ecc., come posso chiudere ciascun tag?

    Esempio:
    $testo = str_replace("[ email ]", "<a href=mailto:", $testo);
    $testo = str_replace("[/email]", "</a>", $testo);

    il tag <a href=mailto: non verrà chiuso e quindi non visualizzerò l'email che ho scritto.

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.