Stelo
|
User
|
|
registriert
|
09.10.2007
|
wohnt in
|
|
Beiträge
|
1
|
|
Heyho,
ich arbeite gerade an einem kleinen Forum
Aus einem Tut hab ich folgendem Code um die BBCodes zu ersetzen:
PHP:
<?php
$text = preg_replace("/\[B\](.*)\[\/B\]/Usi", "<b>\1</b>", $text);
$text = preg_replace("/\[I\](.*)\[\/I\]/Usi", "<i>\1</i>", $text);
$text = preg_replace("/\[U\](.*)\[\/U\]/Usi", "<u>\1</u>", $text);
$text = preg_replace("/\[COLOR=(.*)\](.*)\[\/COLOR\]/Usi", "<font color=\"\1\">\2</font>", $text);
$text = preg_replace_callback("/\[URL=(.*)\](.*)\[\/URL\]/Usi", 'linkLenght', $text);
$text = preg_replace_callback('#(( |^)(((ftp|http|https|)://)|www.)\S+)#mi', 'linkLenght', $text);
// Prüft die Linklänge und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
function linkLenght($treffer)
{
// $treffer[1] ist die URL
$url = trim($treffer[1]);
// $treffer[2] ist der Ausgabename
// wurde kein Name angegeben, wird die URL als Name gewählt
if(strlen(trim($treffer[2]))!=0)
$linkname = $treffer[2];
else
$linkname = $treffer[1];
// legt eine maximale Länge von 50 Zeichen fest
// Ausnahme bei [img]-Tags
if(strlen($linkname)>50 AND !substr_count(strtolower($linkname), '[img]') AND !substr_count(strtolower($linkname), '[/img]'))
$linkname = substr($linkname, 0, 45-3)."...".substr($linkname, -5);
// Rückgabelink
$ergebnis = "<a href=\"".$url."\" target=\"_blank\">".$linkname."</a>";
return $ergebnis;
}
$text = preg_replace_callback("/\[img\](.*)\[\/img\]/Usi", 'picSize', $text);
// Prüft die Bildausmaße und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
function picSize($treffer)
{
// falls keine gültige Adresse angegeben wurde, wird die Fehlermeldung unterdrückt
$size = @getimagesize($treffer[1]);
if ($size[0] > 400) {
$width = 400;
// Höhe berechnen
$height = ($size[1]/$size[0])*$width;
return " <img src=\"".$treffer[1]."\" width=\"".$width."\" height=\"".$height."\" border=\"0\"> ";
}
else
return " <img src=\"".$treffer[1]."\" border=\"0\"> ";
}
$text = str_replace(':)',"<img src=\"http://luxurystables.lu.funpic.de/images/1.gif\">", $text);
$text = str_replace('=)',"<img src=\"http://luxurystables.lu.funpic.de/images/3.gif\"> ", $text);
$text = str_replace('=)',"<img src=\"http://luxurystables.lu.funpic.de/images/3.gif\">", $text);
$text = str_replace(':P',"<img src=\"http://luxurystables.lu.funpic.de/images/4.gif\">", $text);
$text = str_replace(';)',"<img src=\"http://luxurystables.lu.funpic.de/images/5.gif\">", $text);
$text = str_replace(':D',"<img src=\"http://luxurystables.lu.funpic.de/images/6.gif\">", $text);
$textr = str_replace(':(',"<img src=\"http://luxurystables.lu.funpic.de/images/7.gif\">", $text);
return $text;
?>
Wenn ich nun die Posts aus der Datenbank auslese und es gibt nur einen Post funktioniert alles.
Gibt es nun 2 Posts, dann kommt folgende Fehlermeldung:
Zitat:Fatal error: Cannot redeclare linklenght() (previously declared in /var/www/web46/files/members/pageersetzen.php:14) in /var/www/web46/files/members/pageersetzen.php on line 31
Obwohl es in keinem der Posts einen Link gibt, der gekürtzt werden müsste.
Hat jemand eine Idee woran das liegt und vllt. eine Lösung? Wäre echt toll ...
Danke schön schon mal!
|