Formatierungscode in PHP

So sollte es klappen
PHP:
<?
include('geshi.php');
function bbcode($string) {
    $string = preg_replace("#\[bb\](.*?)\[/bb\]#sie", "'<table align=center width=90%><tr><td><font face=Verdana size=2><b>BlitzBasic Code:</b></font></td></tr><tr><td><table cellpadding=4 cellspacing=1 width=100% bgcolor=#000000><tr><td bgcolor=#c0c0c0>'.highlight_code('\\1').'</td></tr></table></td></tr></table>'", $string);
    return $string;
}
function highlight_code($source)
{
    $geshi =& new GeSHi($source, 'blitzbasic');
    $return = $geshi->parse_code();
    return $return;
}
echo bbcode("[bb];test[/bb][bb];test[/bb]");
?>

wieso bekommste das nich in die Tabelle? das iss doch simpel^^ rofl^^

:rolleyes:
 
Zuletzt bearbeitet:
mh, da sind auch die Backslashes escaped, dann kanns auch nich gehen.........

PHP:
$string = preg_replace("/\[bb\](.*)\[\/bb\]/si", "<table align=center width=90%><tr><td><font face=Verdana size=2><b>BlitzBasic Code:</b></font></td></tr><tr><td><table cellpadding=4 cellspacing=1 width=100% bgcolor=#000000><tr><td bgcolor=#c0c0c0>".highlight_code('\\1')."</td></tr></table></td></tr></table>", $string);

Und wehe da kommt jetz wieder ein ":rolleyes:" oder ein "Wenn es wirklich so simpel wäre", denn der fehler WAR und IST simpel, und hätte in der PHP dukumentation unter http://de.php.net lockerflockig gefunden werden können.
 
Tabellen sind gar nicht nötig. Verwende lieber die semantisch korrekten Elemente pre (präformatierter Text) und code (Quellcode):
PHP:
$string = preg_replace('#\[bb\](.*?)\[/bb\]#sie', '"<div class=\"blockcode blitzbasic\">BlitzBasic Code:<pre><code>".highlight_code("\1")."</code></pre></div>"', $string);
Diese kannst du dann einfach mit CSS formatieren, etwa:
Code:
.blockcode {
	margin: 0 auto;
	width: 90%;
	font-size: 0.8em;
	font-weight: bold;
}
.blockcode pre {
	padding: 1ex;
	font-size: 1.2em;
	font-weight: normal;
	border: thin solid #000;
	background-color: #C0C0C0;
}
 
mh, da sind auch die Backslashes escaped, dann kanns auch nich gehen.........

PHP:
$string = preg_replace("/\[bb\](.*)\[\/bb\]/si", "<table align=center width=90%><tr><td><font face=Verdana size=2><b>BlitzBasic Code:</b></font></td></tr><tr><td><table cellpadding=4 cellspacing=1 width=100% bgcolor=#000000><tr><td bgcolor=#c0c0c0>".highlight_code('\\1')."</td></tr></table></td></tr></table>", $string);
Und wehe da kommt jetz wieder ein ":rolleyes:" oder ein "Wenn es wirklich so simpel wäre", denn der fehler WAR und IST simpel, und hätte in der PHP dukumentation unter http://de.php.net lockerflockig gefunden werden können.

geht immer noch nicht, ich seh zwar jetzt die Tabelle, aber der Inhalt ist "\1" und nicht ";test".

ASD`s und Gumbo`s Beispiele funktionieren, danke für die Hilfe.

Das mitn CSS ist natürlich besser :) danke

MFG Jackie05
 
Zuletzt bearbeitet:
Zurück