PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : preg_replace und preg_replace_callback ???


Funjoy
20.12.2004, 12:20:47
Hallo,

Ich bastle gerade an einer UBB Klasse zum umwandeln von BBCode in Html halt. so nun wollte ich eine Funktion schreiben der mir HTML Farblich ausgibt (Syntaxhighlighting) .

So ich habe erstmal damit angefangen das der Code der gehighlighted werden soll mir in einzelne Zeilen in ein Array gespeichert werden.

So nun soll erstmal alle Kommentare Grau dargestellt werden und da scheiter ich derzeit. Das Pattern ist kein Problem doch ich habe ein Problem damit wie ich den Neuen string wieder zurück gebe. Ich zeige mal den Code dann wiest ihr schon was ich meine.

<?php
...
function htmldeactivate($str)
{
return (htmlspecialchars($str[1]));
}

function HtmlSynHighlight($string)
{
$Lines = explode("n",$string);

for($x=0;$x<count($Lines);$x++)
{
#-> Überprüfen ob die Zeile Kommentare enthält im Format <!-- ... -->.
if(preg_match_all("/(<!--|-->)/si",$Lines[$x],$Comment))
{
#-> Anfang des Kommentars suchen und font- Tag einsetzen.
$Str .= preg_replace_callback("/<!--(.*)/si","<font color="#999999" size="-1">&lt;!-- htmldeactivate",$Lines[$x]);
}
}

return $Str;
}
...
?>

Wenn ich das dann anhang eines Beispiel testen möchte kommt folgende Fehlermeldung:
Warning: preg_replace_callback() requires argument 2, '<!-- htmldeactivate', to be a valid callback in C:apachefriendsxampphtdocswww.phpline.declassUBBManager.php on line 47

Warning: preg_replace_callback() requires argument 2, '<!-- htmldeactivate', to be a valid callback in C:apachefriendsxampphtdocswww.phpline.declassUBBManager.php on line 47

Was ist daran Falsch ich habe es Quasi aus der PHP Manual abgeschrieben.

So lass ich den string dan Pattern.
<?php
include("UBBManager.php");
$string ="<!-- <a href="#">Link</a>
<script language="JavaScript"></script> -->
<tfoot color="#999999">dfgdgdfg </tfoot>";

$ubb = new UBBManager();
$var = $ubb->HtmlSynHighlight($string);
echo $var;
?>

MfG Funjoy