1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

[PHP] eigene Function funktioniert nicht - Fehler in der Anbindung?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von .holger, 06.10.05.

  1. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    Moin moin,

    ich arbeite gerade an einer Seite für eine Band. Diese bekommt ein kleines Handgeschriebenes CMS von mir. u.a. werden so eine Art BB Codes verwendet, dass die Bandmitglieder und auch die Besucher (im Gästebuch etc.) ihre Texte formatieren können.

    Um jetzt nicht überall den Code für die Datenbankabfrage wo die Smilies die ersetzt werden und auch die anderen Codes schreiben zu müssen habe ich die in eine extra Datei geschrieben und binde diese ziemlich weit vorne in der index.php (in die der ganze Content includet wird) ein.

    in der functions.php stehen u.a. diese beiden functions:
    PHP:
    function html_links($text) { 
    $text 
    preg_replace('"(((f|ht){1}tp://)[a-z0-9-.] [.]{1}[a-z]{1,6}[-a-z0-9@:%_$.! *, .~#;?&//=]*)"i''<a href="$1">$1</a>'$text); 
    $text 
    preg_replace('"([snr>]{1}|^)((www.)[a-z0-9-]{1,255}[.]{1}[a-z]{1,6}[-a-z0 -9@:%_$.!*, .~#;?&//=] )"i''$1<a href="http://$2">$2</a>'$text); 
    $text 
    preg_replace('"(([snr>]){1}|mailto:|^)(([-a-z0-9@:%_$.!*, 
    ; .~#;?&//=] )@([a-z0-9-.] [.]{1}[a-z]{1,6}))"i'
    '$2<a href="mailto:$3">$3</a>'$text); 
    $text 
    preg_replace('"(((f|ht){1}tp://)([0-9]{1,3}([./sn]|$){1}){4}[ 
    -a-z0-9@:%_$ 
    .!*, .~#;?&//=]*)"i'
    '<a href="$1">$1</a>'$text); return ($text); 


    function 
    smilie($text){
        
        
    $smiliecodes mysql_query("SELECT * FROM $smilies ORDER BY id DESC");
        
    $text ereg_replace("\n","<br />",$text);
        while (
    $codes mysql_fetch_row($smiliecodes))
        {
        
    $text ereg_replace("$codes[2]","<img src='$codes[1]' />",$text);
        }
        return 
    $text;
        
    }
    (die Variable "$smilies" wird vorher definiert und beinhaltet den Name der Tabelle. Auch die Anbindung an die Datenbank erfolgt schon vorher)

    jetzt benutze ich bei der Ausgabe bevor ich mit "echo $text;" den ganzen Kram ausgebe folgendes:

    $text = html_links($text);
    $text = smilie($text);

    was mach ich nur falsch?
     
  2. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    tja, wenn du jetzt nochmal sagen würdest, was da genau falsch läuft, könnten wir dir vielleicht besser helfen :p

    slartibartfast
     
  3. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    na ja... die functions werden nicht ausgeführt, statt z.B. bei der ersten function eine URL in einen Link zu verwandeln bleibt die URL als normaler Text in der Variablen stehen (ohne <a ...) und auch die zweite function macht nichts der <img code wird einfach nicht eingebunden.......
     
  4. slartibartfast

    slartibartfast Schöner von Nordhausen

    Dabei seit:
    10.05.05
    Beiträge:
    323
    also, ein erster Tipp:
    beides zusammen in eine Funktion. wird doch übersichtlicher
    (natürlich mit Kommentaren ;))

    bei funktion 1) wird's wohl an den regex liegen.
    bei 2) mach mal ein "echo $codes[1] und [2]". sicher, dass du die nicht verwechsert hast? Ich bin mir auch net sicher, ob die Zählung nicht bei "0" anfängt... (ich kenn deine Datenbank ja net...


    Gruss
    slartibartfast
     
    .holger gefällt das.
  5. ma.buso

    ma.buso Châtaigne du Léman

    Dabei seit:
    16.04.05
    Beiträge:
    824
    hallo holger,

    die smily-fuktion kann nicht funktionieren, wenn du externe variablen nicht einliest:

    function smilie($text){
    global $smilies;

    ... usw.
     
    .holger gefällt das.
  6. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    das komische ist ja, dass function 2 normalerweise geht, wenn die nicht als function in einer Extradatei ist, sondern einfach im Quelltext mit geht. 0 ist eine id, 1 ist die URL der Bilddatei und 2 ist der code der ersetzt werden soll.....
     
  7. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    hmmm das könnte sein,.... danke für den Tipp werd ich nachher mal gucken.....
     
  8. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    Es geht (lag an global) 1000 dank - das gibt karma!
     

Diese Seite empfehlen