kurzer Tag durch langen PHP Code ersetzen? preg_replace?

  • Klar beschwert es sich.
    Ich bin ja auch selten blöde *kopfklatsch*

    Für meine Methode muss schon preg_replace_callback ran.

    Sorry nochmal.

    Gruß,
    Jojo


    Einmal editiert, zuletzt von jojo87 (23. Januar 2009 um 19:51) aus folgendem Grund: Und immer noch Fehler drinne. Ich muss bald mal schlussmachen

  • hmmm danke nochmal :D
    will aber immernoch nicht...

    zuerst bekam ich unexpected $end at line 75 (letzte zeile)

    hab dann bei der function getwardata noch ein } dahinter gemacht (scheint mir als würde das 1mal fehlen, denn 1mal wird function aufgemacht und einmal if, kann aber nur 1mal was abschliesendes finden)

    jetz bekomme ich:

    Code
    [B]Fatal error[/B]: Cannot redeclare parsebb() (previously declared in ****template.inc.php:6) in [B]***template.inc.php[/B] on line [B]11[/B]
    Code
    [COLOR=#000000][COLOR=#006600][COLOR=Black]zeile 9[/COLOR]  [/COLOR][COLOR=#0000cc]$returnString [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]preg_replace_callback[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$pattern[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]getwardata[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]$returnString[/COLOR][COLOR=#006600]);  [/COLOR][COLOR=#ff9900]
    [/COLOR][COLOR=#006600][COLOR=Black]zeile 10 [/COLOR]return [/COLOR][COLOR=#0000cc]$returnString[/COLOR][COLOR=#006600];  
    [COLOR=Black]zeile 11[/COLOR] }[/COLOR][/COLOR]

    öhm... oO daraus werde ich persönlich nicht schlau

    sollte es irgendwas zu bedeuten haben, hier meine restlichen bbcodes:
    b, i, u, img, url, flag, race, color

    nach deinem code kommt nurnoch

    Code
    $beschopen[$zahl] = preg_replace('#\[b\](.*)\[/b\]#isU', "<b>$1</b>", $beschopen[$zahl]);

    etc.
    danach pur html (auser echo wenn ich eine variable ausgebe)

  • das ist aber der einzigste PHP code (abgesehen von Echos später)

    hab gerade mal getestet was passiert wenn ich parseBB in parseCW umbenenne, ich bekomme die gleiche Fehlermeldung, nur eben
    Cannot redeclare parsecw() (previously declared in....

  • Dann musst du irgendwo noch einen Hänger haben.
    Die Meldung kommt mit ziemlicher Sicherheit nicht durch mein Script.
    Achso: nen kleinen Fehler hatte ich noch drinne:

    PHP
    $returnString = preg_replace_callback($pattern, 'getwardata', $returnString);

    Da fehlten die '', das sollte aber nur ne warning ausspucken.
    Nuja, du musst mit glücklich werden.

    Gute Nacht,
    Jojo


  • aufjedenfall vielen dank an dich :)

    ja, irgendwo muss da ein hänger sein, werde morgen mal alles in ruhe durchschauen.

    woho^^
    hatte es eine zeile zu weit unten, jetz gehts.. bisschen xD

    es erscheint jetz bei mir so:

    Code
    [cw]1[/cw] 
                                 Arschkrampen vs. Nüschtkönner: 2:1

    (noch nix an deinem code geändert und das is die ausgabe im browser dann)
    also bisschen was passt noch nicht...

    *edit*
    wenn ich

    PHP
    echo parseBB($beschopen[$zahl]);

    rausnehme dann steht nurnoch [cw]1[/cw] da

  • Na is doch perfekt! Mehr soll nich passieren :D
    Das sind halt nur Dummy-Ausgaben.
    Die Stelle im Code, in der du dann mit der ausgelesenen Zahl aus [cw]1[/cw] die richtigen Daten aus der DB holen kannst, ist auskommentiert. Das musst du dir dann schon alleine schreiben, aber das schaffst du ;)

    Gruß,
    Jojo


  • Das sollte nicht mehr vorkommen.
    Wenn du als Text nur [cw]1[/cw] eingibst, sollte das dann durch die Funktion getwardata ersetzt werden.
    Zeig doch bitte nochmal deinen Code, wie er jetzt ist, plus die Ausgabe von

    PHP
    echo parseBB("[cw]1[/cw]");

    Ich habe dirch auch per icq angeschrieben, sollte es gar nicht gehen.

    Gruß,
    Jojo


  • hmmm
    entweder du antwortest ICQ einfach nicht oder irgendwas stimmt da nicht xD

    das problem ist z.Z. noch das ich keinen Code reinbringen kann bei deiner Variante

    die Ausgabe sieht ca. so aus (BEISPIEL!):

    und ich kann schlecht folgendes machen:

    any idea?

  • hmmm
    entweder du antwortest ICQ einfach nicht oder irgendwas stimmt da nicht xD

    das problem ist z.Z. noch das ich keinen Code reinbringen kann bei deiner Variante

    die Ausgabe sieht ca. so aus (BEISPIEL!):

    und ich kann schlecht folgendes machen:

    any idea?

    Vielleicht eher so:

    Der frühe Vogel fängt den Wurm,
    aber die zweite Maus bekommt den Käse.

  • *push it up*

    hab hier mal ganz alten code von mir:

    so ungefähr sieht die ausgabe aus