bbcode codice php

Salve  :bye: a tutti sono nuovi del forum, vorrrei chiedervi una cosa riguardante il bbcode, come faccio a colorare un codice php cioè se l'utente usa i tag che istruzione devo usare per fare in modo che il testo al suo interno scritto correttamente in php si colori come fa questo forum e tutti gli altri forum???

Grazie

inviato 10 anni fa
SuperSavio
X 0 X

Ciao SuperSavio2 e benvenuto!,

per colorare il codice basta richiamare la funzione highlight_string

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ciao e grazie per il benvenuto....senti come la imposto cioè io ora sto usando il codice bbcode postato in un'altra discussione perchè il mio nn era tanto perfetto come quello :-[ ...nn co come inserirlo :-[

risposto 10 anni fa
SuperSavio
X 0 X

Il principio è identico a tutte le altre conversioni del BBcode... Se hai fatto quelle non ci vuole niente...

risposto 10 anni fa
NeO_Giu
X 0 X

Prova così:

[nobbc]

<?php

$text = '[code]<?php phpinfo(); ?>[/code]';

$text = preg_replace_callback( '^\[code\](.*?)\[/code\]^i', create_function( '$matches', 'return highlight_string($matches[1], true);' ), $text );

echo $text;

?>

[/nobbc]

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
<?php
$bbcode = "[b]ciao[/b] [color=red]ciao[/color] [u]ciao[/u] [del]ciao[/del] [email=prova@hotmail.com]ok[/email][php]<?php phpinfo();?>[/php]";

// Search for this...
$replacewhat = array(
'/\[url\](.+?)\[\/url\]/is',
'/\[url=(.+?)\](.+?)\[\/url\]/is',

'/\[ftp\](.+?)\[\/ftp\]/is',
'/\[ftp=(.+?)\](.+?)\[\/ftp\]/is',
'/\[php\](.+?)\[/php\]/is',
'/\[b\](.+?)\[\/b\]/is',
'/\[i\](.+?)\[\/i\]/is',
'/\[u\](.+?)\[\/u\]/is',
'/\[del\](.+?)\[\/del\]/is',

'/\[color=(.+?)\](.+?)\[\/color\]/is',

'/\[img\](.+?)\[\/img\]/i',
'/\[img width=([0-9]+) height=([0-9]+)\s*\](.+?)\[\/img\]/i',
'/\[img width=([0-9]+)\s*\](.+?)\[\/img\]/i',
'/\[img height=([0-9]+) width=([0-9]+)\s*\](.+?)\[\/img\]/i',
'/\[img height=([0-9]+)\s*\](.+?)\[\/img\]/i',

'/\[email\](.+?)\[\/email\]/is',
'/\[email=(.+?)\](.+?)\[\/email\]/is',
'/(\/|=|"mailto:)?([a-z0-9_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)(\/|<)?/eis',
);

// ...and replace it with this
$replacewith = array(
'<a href="\\1">\\1</a>',
'<a href="\\1">\\2</a>',
'<a href="\\1">\\1</a>',
'<a href="\\1">\\2</a>',
'highlight_string(\\1[1] true)',
'<b>\\1</b>',
'<i>\\1</i>',
'<u>\\1</u>',
'<del>\\1</del>',

'<font color="\\1">\\2</font>',

'<img src="\\1" alt="" />',
'<img src="\\3" alt="" width="\\1" height="\\2" />',
'<img src="\\2" alt="" width="\\1" />',
'<img src="\\3" alt="" width="\\2" height="\\1" />',
'<img src="\\2" alt="" height="\\1" />',

'<a href="mailto:\\1">\\1</a>',
'<a href="mailto:\\1">\\2</a>',
"('\\4' == '' && '\\1' == '' ? '<a href=\"mailto:\\2\">\\2</a>' : stripslashes('\\1\\2\\4'))",
);

$news = preg_replace_callback($replacewhat, $replacewith, $bbcode);

echo $bbcode;
?>

mi da questo errore:

Warning: preg_replace_callback() [function.preg-replace-callback]: requires argument 2, 'Array', to be a valid callback in C:\AppServ\www\bbcode.php on line 55

ciao ciao ciao [del]ciao[/del] ok

risposto 10 anni fa
SuperSavio
X 0 X

se stravolgi ciò che ti ho riportato non puoi pretendere che funzioni  :dunno:

Non puoi mette l'espressione del mio codice all'interno dell'array delle espressioni regolari, devi necessariamente separare il parsing del normale BBCode dal parsing del codice poiché quest'ultimo necessita la funzione highlight_string

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

risolto grazie di tutto  ;)

risposto 10 anni fa
SuperSavio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda