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

    interpretrare testo fra codice

    salve,

    che funzioni bisogna utilizzare per interpretrare dei tag?
    ad esempio se scrivo <grassetto> testo </grassetto> in un textbox vorrei che nel database mysql fosse inserito del codice html del tipo: testo .
    Naturalmente verrà interpretrato soltanto il testo compreso fra questi tag (o altri che definirò in seguito) per cui tutto il restante testo viene inserito cosi' com'é...
    suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    Espressioni regolari of course.


    Questo dovrebbe essere un possibile pattern per isolare l'espressione

    testo
    codice:
    $pattern = "<([ \s]*)strong([ \s]*)>([^<>]+)<([ \s]*)/strong([ \s]*)>"
    Se non prevedi spazi all'interno dei tag puoi semplificare anche così

    codice:
    $pattern = "([^<>]+)"
    Dice: cerca all'inizio e alla fine e in mezzo qualsiasi cosa diversa da < e da >

    Una volta isolato l'insieme tag-testo-tag ripeti per la ricerca di testo attraverso questo nuovo pattern

    codice:
    $pattern = ">([^<>]+)<"
    quindi se lo trovi tagli il primo e l'ultimo carattere e hai il testo.
    Oppure dal primo pattern in base alle lunghezze di e ricavi quello che sta in mezzo...
    In modo identico, puoi usare una variabile, ripeti per altri tag. Se il tag supporta gli attributi le cose sono più difficili...la reg exp non te la posto perchè è lunghetta...ma se ti servisse...

  3. #3
    Originariamente inviato da JHammer
    In modo identico, puoi usare una variabile, ripeti per altri tag. Se il tag supporta gli attributi le cose sono più difficili...la reg exp non te la posto perchè è lunghetta...ma se ti servisse...
    non mi interessano gli attributi, mi interessa più che altro creare varie regole in quanto dovrei costruire un editor di testo tipo quello con cui sto scrivendo in questo forum che mi permette di formattare il testo inserendo titolo in grassetto,corsivo,etc. in modo visuale

  4. #4
    Ehm... JHammer, le POSIX sono più lente delle Perl-Compatibili, a parte che sono un pò + casinare

    Se ti dev itrovare il testo fra dei tag:
    codice:
    <?
    $starttag = "";
    $endtag = "";
    
    preg_match_all("|($starttag)(.+)($endtag)|iu", $miotesto, $array);
    
    print_r($array);
    ?>
    Dove $array sarà il risultato. Se devi sostituire del codice:
    codice:
    <?
    $starttag = "";
    $endtag = "";
    
    $starttag2 = "[ B]";
    $endtag2 = "[ /B]";
    
    preg_replace("|($starttag)(.+)($endtag)|iu", $starttag2."\\1".$edntag2, $miotesto);
    
    print $miotesto;
    ?>
    $miotesto sarà parsato. Se vuoi, la funz ritorna il numero di sostituzioni avvenute.


    Spero di averti aiutato. PaTeR




    PS: Ad okkio e croce dovrebbero funzionarti, non le ho testate...
    PaTeR
    From Ban to Life

  5. #5
    Ho provato a realizzare questo partendo dai tuoi suggerimenti:
    Codice PHP:
    <?
    $miotesto
    ="[ B]prova[ /B] di testo";

    $starttag "[b]";
    $endtag "[/b]";
    $starttag2 "[ B]";
    $endtag2 "[ /B]";

    preg_replace("|($starttag)(.+)($endtag)|iu"$starttag2."\\1".$endtag2$miotesto);

    print 
    $miotesto;
    ?>
    mi sarei aspettato $miotesto formato da una parte formattata in grassetto ed un'altra normale.... ma quello che mi esce fuori è esattamente quello scritto in $miotesto

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.