Hi Leutz,
bastel gerade an ein paar Funktionen für mein Forum.
Dabei gehst um die Formatierung der Beiträge
wie zum Beispiel ob es sich beim Text um einen Link,
einen Fetten Text oder ein Bild oder
gar php-code handelt.
Mein Problem liegt unter anderem bei
der Darstellung von Php-code.
Bei einer kleinen Funktion wie
folgender als Beispiel
spuckt er mir folgenden Regex mitten im Beitrag aus:
Warning: Unexpected character in input:
'' (ASCII=92) state=1 in DrogrammeTSWApache2htdocsparty
bilderincclasses
class_func.php(332) : regexp code on line 8
Allerdings kein plan woran das liegen könnte.
Sieht dann im Beitrag etwa so aus:
Hier mal meine Funktionen:
Für Verbesserungsvorschläge zur Struktur bzw. des Aufbaus der ganzen Sache wäre ich auch dankbar.
bastel gerade an ein paar Funktionen für mein Forum.
Dabei gehst um die Formatierung der Beiträge
wie zum Beispiel ob es sich beim Text um einen Link,
einen Fetten Text oder ein Bild oder
gar php-code handelt.
Mein Problem liegt unter anderem bei
der Darstellung von Php-code.
Bei einer kleinen Funktion wie
folgender als Beispiel
PHP-Code:
function FetchUserIcon($userid) {
global $templ;
$templ['usericon']['userid'] = $userid;
return $this->FetchModTpl("", "ls_usericon");
}
Warning: Unexpected character in input:
'' (ASCII=92) state=1 in DrogrammeTSWApache2htdocsparty
bilderincclasses
class_func.php(332) : regexp code on line 8
Allerdings kein plan woran das liegen könnte.
Sieht dann im Beitrag etwa so aus:
PHP-Code:
function FetchUserIcon($userid) {
global $templ;
$templ['usericon']['userid'] = $userid;
return $this->FetchModTpl(Warning:
Unexpected character in input: '' (ASCII=92)
state=1 in DrogrammeTSWApache2htdocspartybilderinc
classesclass_func.php(332) : regexp code on line 8"", "ls_usericon");
}
Hier mal meine Funktionen:
PHP-Code:
// Text aus der DB zu Html
function db2text2html($text) {
$text = $this->db2text($text);
$text = $this->text2html($text);
return $text;
}
// Text DB-Tauglich
function text2db($text) {
$text = trim($text);
return $text;
}
// DB-Eintrag zu normalem Text
function db2text($text) {
$text = stripslashes($text);
return $text;
}
// Text zu HTML hier funktioniert unter anderem der Code-highlighter nicht
function text2html($string)
{
global $cfg, $db;
$img_start = "<img src=\"design/".$GLOBALS["config"]["xinux"]["default_design"]."/images/";
$img_start2 = "<img src=\"ext_inc/smilies/";
$img_end = "\" border=\"0\">";
$string = stripslashes(preg_replace('#\[c\](.+)\[/c\]#Uise',"'[blockquote]'.
highlight_string('\\1', TRUE).'[/blockquote]'", $string));
if($cfg[$_GET["mod"]."_html"] == 0) {
$string = strip_tags($string, "<font></font>");
}
$string = eregi_replace("([ \n])[url]http://[/url]([^ ,\n]*)",
"\\1[url]http://\\2[/url]", $string);
$string = eregi_replace("([ \n])[url]ftp://[/url]([^ ,\n]*)",
"\\1[url]ftp://\\2[/url]", $string);
$string = eregi_replace("([ \n])www\\.([^ ,\n]*)",
"\\1[url]http://www.\\2[/url]", $string);
$string = eregi_replace("^[url]http://[/url]([^ ,\n]*)",
"[url]http://\\1[/url]", $string);
$string = eregi_replace("^[url]ftp://[/url]([^ ,\n]*)",
"[url]ftp://\\1[/url]", $string);
$string = eregi_replace("^www\\.([^ ,\n]*)",
"[url]http://www.\\1[/url]", $string);
$string = eregi_replace('\[url\]www.([^\[]*)\[/url\]',
'<b><a href="http://www.\1" target="_blank" class="admin">\1</a></b>', $string);
$string = eregi_replace('\[url\]([^\[]*)\[/url\]',
'<b><a href="\1" target="_blank" class="admin">\1</a></b>', $string);
$string = eregi_replace('\[mailurl\]([^\[]*)\[/mailurl\]',
'<b><a href="\1" class="admin">Link</a></b>', $string);
$string = eregi_replace('\[url=www.([^\[]*)\]([^\[]*)\[/url\]',
'<b><a href="http://www.\1" target="_blank" class="admin">\2</a></b>', $string);
$string = eregi_replace('\[url=http://www.([^\[]*)\]([^\[]*)\[/url\]',
'<b><a href="http://www.\1" target="_blank" class="admin">\2</a></b>', $string);
$string = eregi_replace('\[url=([^\[]*)\]([^\[]*)\[/url\]',
'<b><a href="\1" target="_blank" class="admin">\2</a></b>', $string);
$string = eregi_replace('\[url_www.([^\[]*)\]([^\[]*)\[/url\]',
'<b><a href="http://www.\1" target="_self" class="admin">\2</a></b>', $string);
$string = eregi_replace('\[url_([^\[]*)\]([^\[]*)\[/url\]',
'<b><a href="\1" target="_self" class="admin">\2</a></b>', $string);
$string = str_replace("\n", "<br>", $string);
// $string = nl2br($string);
$string = str_replace('[bold]', '<b>', $string);
$string = str_replace('[/bold]', '</b>', $string);
$string = str_replace('[inverted]', '<i>', $string);
$string = str_replace('[/inverted]', '</i>', $string);
$string = str_replace('[underlined]', '<u>', $string);
$string = str_replace('[/underlined]', '</u>', $string);
$string = str_replace('[blockquote]',
'<blockquote><div class="stil_small">Code:
</div><table width="70%"
cellspacing="1" cellpadding="2" class="code"><tr class="code"><td>', $string);
$string = str_replace('[/blockquote]',
'</td></tr></table></blockquote>', $string);
$string = str_replace('[quotes]',
'<blockquote><div class="stil_small">Zitat:
</div>
<table width="70%"
cellspacing="1" cellpadding="2" class="code">
<tr class="code"><td>', $string);
$string = str_replace('[/quotes]', '</td></tr></table></blockquote>', $string);
$hits = eregi_replace('\[img\]([^\[]*)\[/img\]', '\1', $string);
/* Prüft Breite und Höhe der Bildquelle */
$img = @imagecreatefromgif($hits);
if ($img) {
if(imagesy($img) > "300") {
$img_width = "width = \"300\"";
}
else {
$width = "";
}
}
$img = @imagecreatefromjpeg($hits);
echo $img;
if ($img) {
if(imagesy($img) > "300") {
$img_width = "width = \"300\"";
}
else {
$img_width = "";
}
}
$img = @imagecreatefrompng($hits);
if ($img) {
if(imagesy($img) > "300") {
$img_width = "width = \"300\"";
}
else {
$img_width = "";
}
}
/* Ende Bildquellenüberprüfung */
if($img == "" AND $img_width == "") {
$img_width = "width=\"300\"";
}
$string = eregi_replace('\[img\]([^\[]*)\[/img\]',
'<div align="left"><img src="\1" '.$img_width.' border="0"></div>', $string);
$string = eregi_replace('\[img=www.([^\[]*)\]([^\[]*)\[/img\]',
'<div align="left"><a href="http://www.\1" target="_blank" class="admin">
<img src="\2" '.$img_width.' border="0"></a></div>', $string);
$string = eregi_replace('\[img=http://www.([^\[]*)\]([^\[]*)\[/img\]',
'<div align="left"><a href="http://www.\1" target="_blank" class="admin">
<img src="\2" '.$img_width.' border="0"></a></div>', $string);
$string = eregi_replace('\[img=([^\[]*)\]([^\[]*)\[/img\]',
'<div align="left">
<a href="\1" target="_blank" class="admin">
<img src="\2" '.$img_width.' border="0"></a></div>', $string);
$string = eregi_replace('\[img_www.([^\[]*)\]([^\[]*)\[/img\]',
'<div align="left">
<a href="http://www.\1" target="_self" class="admin">
<img src="\2" '.$img_width.' border="0"></a></div>', $string);
$string = eregi_replace('\[img_([^\[]*)\]([^\[]*)\[/img\]',
'<div align="left"><a href="\1" target="_self" class="admin">
<img src="\2" '.$img_width.' border="0"></a></div>', $string);
$get_smilie = $db->query("SELECT shortcut, image FROM {$GLOBALS["config"]["tables"]["smilies"]}");
while($row=$db->fetch_array($get_smilie))
{
$string = str_replace($row['shortcut'], $img_start2 . $row['image'] . $img_end, $string);
}
$string = str_replace('[colored=darkred]', '<font color="darkred">', $string);
$string = str_replace('[colored=red]', '<font color="red">', $string);
$string = str_replace('[colored=orange]', '<font color="orange">', $string);
$string = str_replace('[colored=brown]', '<font color="brown">', $string);
$string = str_replace('[colored=yellow]', '<font color="yellow">', $string);
$string = str_replace('[colored=green]', '<font color="green">', $string);
$string = str_replace('[colored=olive]', '<font color="olive">', $string);
$string = str_replace('[colored=cyan]', '<font color="cyan">', $string);
$string = str_replace('[colored=blue]', '<font color="blue">', $string);
$string = str_replace('[colored=darkblue]', '<font color="darkblue">', $string);
$string = str_replace('[colored=indigo]', '<font color="indigo">', $string);
$string = str_replace('[colored=violet]', '<font color="violet">', $string);
$string = str_replace('[colored=black]', '<font color="black">', $string);
$string = str_replace('[/colored]', '</font>', $string);
$string = str_replace('[size=7]', '<font style="font-size:7px">', $string);
$string = str_replace('[size=8]', '<font style="font-size:8px">', $string);
$string = str_replace('[size=9]', '<font style="font-size:9px">', $string);
$string = str_replace('[size=10]', '<font style="font-size:10px">', $string);
$string = str_replace('[size=11]', '<font style="font-size:11px">', $string);
$string = str_replace('[size=12]', '<font style="font-size:12px">', $string);
$string = str_replace('[size=18]', '<font style="font-size:18px">', $string);
$string = str_replace('[size=24]', '<font style="font-size:24px">', $string);
$string = str_replace('[/size]', '</font>', $string);
return $string;
}
Für Verbesserungsvorschläge zur Struktur bzw. des Aufbaus der ganzen Sache wäre ich auch dankbar.
Kommentar