Originariamente inviato da seed_squall_it
Io sto implementando un BBCode scritto da me per il blog che sto progettando. Ovviamente ha bisogno di qualche aggiunta e di alcuni perfezionamenti, ma se volete posso passarvelo. Si tratta di due semplicissime funzioni: una agisce per "normalizzare" il testo prima di inserirlo nel database (in modo che non possano essere inseriti tag HTML e che non ci siano sprechi di spazio o formattazioni errate come più spazi o più ritorni a capo in sequenza) e l'altra lo "interpreta" prima di visualizzarlo nella pagina PHP del sito/blog.
Quest'ultima funzione permette anche di "troncare" il testo in corrispondenza del punto, punto esclamativo o punto di domanda seguito da uno spazio o da un ritorno a capo più vicini ad una lunghezza in caratteri impostabile da un file di configurazione. Nello stesso file ci sono altre variabili che servono a impostare i tag di apertura e chiusura per i codici BBCode, l'elenco delle faccine inseribili e delle parolacce da censurare (con **** ma si più usare anche un'immagine).
Ad oggi la funzione formatta testi in grassetto, sottolineato, barrato, corsivo, quotato, aggiunge un separatore, gli acronimi e i link, più le faccine e il filtro parolacce.
Il tutto funziona SOLO in UTF-8 (non mi andava di perdere tempo a implementare codifiche incomplete come la Latin1), pertanto il database e le tabelle DEVONO essere creati usando come character set utf8 e come collation utf8_general_ci e i file PHP DEVONO essere salvati con codifica UTF-8 SENZA BOM e usando il meta tag Content-Type con charset impostato a UTF-8.
Se vi va contattatemi e ve la lascio...magari la migliorate pure!