BB-Code ersetzen

Hallo du Könntes auch eine callback funktion nutzen so mach ich das z.B.

PHP:
<?php 
...
//> PHP Syntax Farblich hervorheben.
	function PHP($array)
	  {
		//> Zeilen Zählen.
		$Line = explode("\n",$array[1]);
			
		for($cLine=1;$cLine<=count($Line);$cLine++)
		  {
			$Lines .= "&nbsp;".$cLine."&nbsp;<br>";
		}	

		$string = $array[1];
			
		//> Ausgabe von highlight_string() Puffern.
		ob_start();
   		highlight_string(trim($string));
    	$Code = ob_get_contents();
    	ob_end_clean();
			
		$Header = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"600\"><tr><td width=\"600\" valgin=\"top\">"
				 ."<div style=\"overflow: auto; height: ".(37+(count($Line)*16))."; width: 100%;\">"
				 ."<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"BORDER: 1px SOLID #990000;\" width=\"100%\">"
				 ."<tr><td colspan=\"3\" style=\"FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;FONT-SIZE:13px;FONT-WEIGHT:BOLD;COLOR:#FFFFFF;BACKGROUND-COLOR:#990000;\">&nbsp;PHP-Code</td></tr>"
				 ."<tr bgcolor=\"#F5F5F5\"><td style=\"COLOR:#FFFFFF;BACKGROUND-COLOR:#990000;FONT-WEIGHT:BOLD;\" align=\"center\" width=\"20\" valign=\"top\"><code>"
				 .$Lines
				 ."</code></td><td width=\"5\">&nbsp;</td><td valign=\"top\" nowrap>";
		$Footer = "</td></tr></table></div></td></tr></table>";
			
		return $Header.$Code.$Footer;  
	}
$string = preg_replace_callback("/\[php\](.+)\[\/php\]/si","PHP", $string);
echo $string;
...

?>

Damit gibt er dir sogar die Zeilennummern aus und die Breite ist durch Overflow gesichert :)

MfG Funjoy
 
Erstmal danke für die vielen Antworten :)
Ich versteh zwar den ganzen Code noch nich, werde ihn aber erstmal übernehmen.
Ich versuch mich mal dahinter zu setzen und zu verstehen wie das ganze dann funktioniert, dass ist ja eigentlich das Ziel.

Ich will ja nicht, dass ihr mir einen fertigen Quellcode hinschmeißt, aber anders funktionierts bei diesem Prob grade nicht, weil ich für sowas noch zuwenig in Sachen PHP kann.

Hoffentlich bekomm ich das dann auch irgendwann mal hin. Naja, danke nochmal :)
 
@Gumbo:
Kannst Du das bitte mit einem Beispiel erläutern.
Ich bin noch Anfänger in PHP.

MfG
dirigent
 
Zuletzt bearbeitet:
Zurück