[PHP] UBB -> PHP-highlight

Pagina: 1
Acties:

  • dream0r
  • Registratie: Oktober 2001
  • Niet online
De bedoeling is dat alle tekst tussen de twee PHP ubb tags gehighlight wordt. Ik heb nu deze code.. maar hij werkt niet? Wat doe ik fout?
PHP:
1
<?function php_highlight($input){    $output_tmp = "";    ob_start();    highlight_string($input);    $output_tmp .= ob_get_contents();    ob_end_clean();    echo $output_tmp;}$output = preg_replace("/\\[php\](.+?)\\[\/php\]/is",'php_highlight("\1")', $output); ?>

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

wat is "werkt niet"
errors? uitvoer enz enz

Doet iets met Cloud (MS/IBM)


  • dream0r
  • Registratie: Oktober 2001
  • Niet online
Dit is het hele script:
PHP:
1
<?function php_highlight($input){    $output_tmp = "";    ob_start();    highlight_string($input);    $output_tmp .= ob_get_contents();    ob_end_clean();    echo $output_tmp;}function plain2ubb($msg){  // -- Automatische URL herkenning  $ACCEPT_CHARS = "a-z0-9_~#&amp;;=./?+-";  // De karakters die in een http:// en een mailto: adres mogen voorkomen      $output = eregi_replace("(http|https|ftp|gopher|news)://([$ACCEPT_CHARS]+)", "<a href=\"\\1://\\2\" target=\"_blank\" style=\"font-family: Courier, Courier New;\">\\1://\\2</a>", $msg);    // -- Standaard UBB commands  $output = preg_replace("/\\[img\](.+?)\\[\/img\]/is",'[img]"\1">',[/img]\1</a>', $output);  $output = preg_replace("/\\[b\](.+?)\\[\/b\]/is",'<b>\1</b>', $output);   $output = preg_replace("/\\[u\](.+?)\\[\/u\]/is",'<u>\1</u>', $output);   $output = preg_replace("/\\[i\](.+?)\\[\/i\]/is",'<i>\1</i>', $output);   $output = preg_replace("/\\[php\](.+?)\\[\/php\]/is",'php_highlight("\1")', $output); return $output;}?>

En de output is 1...

Verwijderd

begin es met echo $output_tmp veranderen in return $output_tmp;

Verwijderd

dan zou je kunnen overwegen om \1 te veranderen in \\1

Verwijderd

Dan moet je detecteren of $input al tussen <? en ?> staat en zoniet dan deze er eerst omheen zetten...

  • dream0r
  • Registratie: Oktober 2001
  • Niet online
Als ik die echo / return vervang staat er als output de naam van de functie.. dus php_highligt();

  • tomato
  • Registratie: November 1999
  • Niet online
En dan een /e modifier toevoegen.


In hoeveel replies zullen we er zo komen? Iedereen mag een statement verbeteren (hoeveel statements zijn er dus? >:).

Verwijderd

Ik zou me eerst even iets dieper in dergelijke reguliere expressies verdiepen. Aan de php_highlight code te zien heb je niet helemaal door hoe de /e modifier die je wel wilt gebruiken maar niet gebruikt :+ werkt. :)
Pagina: 1