Logo - MyWebsolution.de
User gesamt  :  1624142
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Tutorials » BBCodes mehrmals ersetzen

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
09.10.2007 21:30 Uhr BBCodes mehrmals ersetzen
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($linkname045-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! :)
Profil ansehen Mail senden
11.10.2007 15:39 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hey,
du musst linkLenght() und picSize() außerßhalb der Funktion definieren. Ich nehme mal an, das ganze ist bei dir eine Funktion, oder?


Profil ansehen Mail senden
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik