- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con i BBCode
-
Problema con i BBCode
Buonasera,
sto cercando di fare un sistema di BBCode e ho notato lo script in Risorse Utili e l' ho integrato in una pagina usando un metodo che... non mi piace.
bbcode.php
[PHP]
<?php
function bbcode($testo) {
$cerca_codice= array(
'/[b](.?)[/b]/is',
'/[i](.?)[/i]/is',
'/[u](.*?)[/u]/is'
);
$sostituisci_codice = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
);
$testo= preg_replace ($cerca_codice, $sostituisci_codice, $testo);
return $testo;
}
?>
[/PHP]index.php
[PHP]
<?php
include "bbcode.php";$testo = 'prova';
$text = bbcode($testo);
echo $text;
?>
[/PHP]Funziona però mi è inutile così, a me servirebbe che funzionasse solo con il bbcode "puro".
Consigli ?
-
Ciao RoxasShadow,
che significa bbcode puro?
-
Cioè che mi basta scrivere testo per generare il grassetto, senza inserirlo nella funzione.
-
Non ho capito cosa intendi...
-
Cerca su google TinyMCE (tinymce.moxiecode.com/), io lo uso per i miei siti.
-
Thedarkita intendo che da Risorse ho prelevato questo script
[PHP]
<?php
function bbcode($testo) {
$cerca_codice= array(
'/[b](.?)[/b]/is',
'/[i](.?)[/i]/is',
'/[u](.*?)[/u]/is'
);
$sostituisci_codice = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
);
$testo= preg_replace ($cerca_codice, $sostituisci_codice, $testo);
return $testo;
}
?>
[/PHP]Ma dopo averlo importato nella mia index non funzionava, infatti se scrivevo [ b ] testo [ b ], l' output era quello dato nel sorgente, non grassettato.
Ho risolto solo in questo modo, ma non è quel che cerco.
[PHP]
<?php
$testo = 'prova';
$text = bbcode($testo);
echo $text;
?>
[/PHP]Mi sono spiegato meglio ?
-
Che funzioni in quel modo è normale, non sò come ti aspetti che funzioni ma devi lavorare sempre su variabili in quel modo in qualsiasi linguaggio di programmazione...
-
Non c'è un modo per rendere < strong > in [ b ] usando il bbcode come il normale html ?
-
ti propongo una soluzione, vediamo se ti aggrada:
- modifica la funzione bbcode come segue (echo anziche' return)
[php]function bbcode($testo) {
$cerca_codice= array(
'/[b](.?)[/b]/is',
'/[i](.?)[/i]/is',
'/[u](.*?)[/u]/is'
);
$sostituisci_codice = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
);
$testo= preg_replace ($cerca_codice, $sostituisci_codice, $testo);
echo $testo;
}[/php]2) anziche' usare echo "testo", usi bbcode( "testo" );lascia pero' che ti dica che e' un uso 'scorretto' del concetto di funzione. Un'uso corretto sarebbe, riferendomi alla prima versione della funzione bbcode():
[php]echo bbcode( "testo" );[/php]
-
Ciao,
ti ringrazio molto per il tuo aiuto ma avevo già risolto col metodo classico.
Magari sarà utile a qualcun altro, grazie comunque di nuovo