Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 22-02-07, 19:13   #1 (permalink)
User Attivo
 
L'avatar di stable
 
Data di registrazione: Nov 2006
Ubicazione: Sicilia
Messaggi: 1,340
Invia un messaggio tramite Skype a stable
[Script] Formattazione testo con bbcode.

Ho fatto un sito con l'inserimento di articoli, molto semplice e ho ovviato alla formattazione del testo tramite il praticissimo bbcode messo a disposizione per noi piccoli webmaster.
Arrivo al mio problema: la formattazione del testo tramite bbcode avviene in modo esatto, tranne per i [BR]
Eccovene un esempio:
http://www.immigrazione.biz/circolare1.html

Ed ecco il bbcode.php da me usato:

Quote:
<?php
//Funzione per interpretare il testo
function fBBCode($string)
{
//No HTML
$string = trim(str_replace("<", "<", $string));
$string = trim(str_replace(">", ">", $string));

//CHR 13
$string = trim(str_replace(chr(13), "[BR];", $string));
$string = trim(str_replace(";", "", $string));

//BBCODE
$string = trim(str_replace("", "<b>", $string));
$string = trim(str_replace("
", "</b>", $string));
$string = trim(str_replace("[C]", "<i>", $string));
$string = trim(str_replace("[/C]", "</i>", $string));
$string = trim(str_replace("[S]", "<u>", $string));
$string = trim(str_replace("[/S]", "</u>", $string));
$string = trim(str_replace("[HR]", "<hr>", $string));
$string = trim(str_replace("[LI]", "<li>", $string));
$string = trim(str_replace("[IMAGE=", "<img border='0' src='", $string));
$string = trim(str_replace("[url=", "<a href='", $string));
$string = trim(str_replace("[/URL]", "</a>", $string));
$string = trim(str_replace("[LEFT]", "<div align='left'>", $string));
$string = trim(str_replace("[CENTER]", "<div align='center'>", $string));
$string = trim(str_replace("[RIGHT]", "<div align='right'>", $string));
$string = trim(str_replace("[/LEFT]", "</div>", $string));
$string = trim(str_replace("[/CENTER]", "</div>", $string));
$string = trim(str_replace("[/RIGHT]", "</div>", $string));
$string = trim(str_replace("[COLORE=", "<font color=", $string));
$string = trim(str_replace("[/COLORE]", "</font>", $string));
$string = trim(str_replace("]", "'>", $string));

//Ritorno il valore
return $string;
}
?>
Qualche suggerimento per piacere?
Sinceramente non capisco il perchè. Grazie a tutti per chi mi volesse aiutare

Ho appena risolto. Grazie lo stesso. PS = ecco la soluzione.
Ho aggiunto $string = trim(str_replace("[BR]", "<br>", $string));
$string = trim(str_replace("[/BR]", "</br>", $string));

al bbcode.php
__________________
Immigrazione dot biz - 2.0 is on line

Ultima modifica di stable : 22-02-07 19:15. Motivo: Problema risolto
stable non in linea   Rispondi citando
Vecchio 11-06-07, 00:04   #2 (permalink)
Banned
 
L'avatar di fabioski
 
Data di registrazione: May 2005
Messaggi: 862
Sei sicuro che per gli URL funzioni bene? Quelli del tipo {URL}http:etc{/URL}
Non li consideri quelli?
fabioski non in linea   Rispondi citando
Vecchio 26-11-07, 14:07   #3 (permalink)
 
L'avatar di francesco zeno
 
Data di registrazione: Jan 2007
Messaggi: 123
Ciao Stable,
credo che il BBcode è utile al fine di non creare errori nella pagina.

La funzione che leggo somiglia ad una gia presente in php, e nel tuo caso sarebbe più semplice fare così:

strip_tags($string, '<b><i><u><hr><br><br/><li><a><img><div><font>');

Questo limita l'uso di html ai soli tag specificati tra virgolette, ma ovviamente bisogna scrivere gli articoli in html.....

Se si vuole proprio far uso del BBcode, sfruttiamolo a dovere....

Se in un articolo si apre un div senza chiuderlo..................................tutto il lavoro del webmaster va a farsi friggere.

Io consiglio questo per "tradurre" il BBcode:

Codice PHP:
 function bbcode_format($var) {
     
$search = array(
         
'/\[b\](.*?)\[\/b\]/is',                                
         
'/\[i\](.*?)\[\/i\]/is',                                
         
'/\[u\](.*?)\[\/u\]/is',
         
'/\[img\](.*?)\[\/img\]/is',
         
'/\[url\](.*?)\[\/url\]/is',
         
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
         
);
     
$replace = array(
         
'<strong>$1</strong>',
         
'<em>$1</em>',
         
'<u>$1</u>',
         
'<img src="$1" />',
         
'<a href="$1">$1</a>',
         
'<a href="$1">$2</a>'
         
);
     
$var preg_replace ($search$replace$var);
     return 
$var;
 } 
Questa funzione traduce i tag BBcode in coppia, solo se prima aperti e poi chiusi, utilizza le espressioni regolari, ma anche se non si è pratici basta copiare quello che già c'è per aggiungere altri tag.

Ciao.
__________________
Zenia Directory gratis

Ultima modifica di Samyorn : 14-08-09 13:04. Motivo: Sistemati apici nel codice.
francesco zeno non in linea   Rispondi citando
Vecchio 15-08-09, 12:09   #4 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Per quanto riguarda la funzione per trasformare i bbcode per poter funzionare in modo ricorsivo, ad esempio un sistema quote dove si può verificare il quote del quote, bisogna fare cosi:
Codice PHP:
<?php

function bbcode_format($var) {
     
$search = array(
                
"/\[b\](.*?)\[\/b\]/is"
                
"/\[i\](.*?)\[\/i\]/is"
                
"/\[u\](.*?)\[\/u\]/is"
                
"/\[img\](.*?)\[\/img\]/is"
                
"/\[url\](.*?)\[\/url\]/is",
                
"/\[url\=(.*?)\](.*?)\[\/url\]/is"
         
);
     
$replace = array(
     
'<strong>$1</strong>',
         
"<em>$1</em>",
         
"<u>$1</u>",
         
'<img src="$1" />',
         
'<a href="$1">$1</a>',
         
'<a href="$1">$1</a>'
         
);
        
     while(
preg_match("#\[quote\](.*?)\[\/quote\]#is"$var)!=0)
         
$var preg_replace("#\[quote\](.*?)\[\/quote\]#is"'<table border="1"><tr><td>$1</td></tr></table>'$var);
     
$var preg_replace($search$replace$var);
     return 
$var;
 }
Thedarkita ora è in linea   Rispondi citando
Vecchio 12-06-10, 17:43   #5 (permalink)
User
 
L'avatar di morpheo983
 
Data di registrazione: Jun 2007
Messaggi: 27
Io ho tutti i tag cosi:
[b:sk07ho8k]testo[/b:sk07ho8k]

come posso risolverlo?
Grazie
__________________
www.mynokia.it Il sito per il tuo Nokia.
morpheo983 non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:18.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.