[REGEX] Zeichenkette wird nicht korrekt ersetzt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [REGEX] Zeichenkette wird nicht korrekt ersetzt

    wenn man nen post verfasst sind in fast jedem forum smilies zum auswählen.
    dies hab ich mal zu testzwecken nachgebaut. ich hab mir ein paar smilies gespeichert und mir ne tabelle erstellt wo der smiliecode (z.B. :ratlos drin steht und in der anderen spallte der bildname (ratlos.gif)

    dies hab ich in zwei arrays und diese wollte ich mit preg_replace durchlaufen und übereinstimmungen durch das bild ersetzen lassen
    (vorerst geht auch nur der bildname ratlos.gif)


    PHP-Code:
    foreach($SmilieArray as $SingleElement)
            {
                
    $SmilieCode[] = $SingleElement['smilie_code'];
                
    $SmilieIcon[] = $SingleElement['smilie_icon'];
            }

    echo 
    $SmilieCode[2] . " | " $SmilieIcon[2];
            echo 
    "<br><br><br>";
            echo 
    $text;
            
            
    $text preg_replace($SmilieCode $SmilieIcon $text);
            
            echo 
    "<br><br><br>";
            echo 
    $text
    es tauchen zwei warnungen auf. wo ich nicht genau den sinn verstehe.

    Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash

    und

    Warning: preg_replace() [function.preg-replace]: No ending delimiter ':' found in

    beide tauchen in der Teile von preg_replace auf.

    aber zum eigentlichen problem ist machne bilder hab ich mit :Icon: gekennzeichnet es wird ersetzt, allerdings sieht es dann z.B. so aus
    :ratlos.gif: irgendwie werden die doppelpunkte nicht ersetzt.

    ich hoffe ihr könnt mir da etwas weiter helfen...

  • #2
    dann schau dir den Syntax von preg_replace mal an.

    Kommentar


    • #3
      ich lese mir zuerst immer, das manual durch, nur meistens raffs ich nicht.

      hmm ok die bildchen deren code mit den : umschlossen ist werden jetzt alle konvertiert hab jetzt nur noch das problem mit den normalen smilies wie :-) 8-) usw...
      Zuletzt geändert von st@tic; 12.05.2005, 13:46.

      Kommentar


      • #4
        @st@tic

        OffTopic:
        Sorry, kann dir hier leider nicht helfen, weil die Regulären Ausdrücke ned grad zu meinen Stärken zählen.
        Aber ich verfolge gerade sehr gespannt wie du dein letztes Posting in regelmäßigen Abständen mit deinen neu gewonnen Erkenntnissen editierst

        Gruss
        Quetschi
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          eija so kriegen zumindest net alle mit was fürn quatsch ich schreibe *gg*

          Kommentar


          • #6
            Original geschrieben von st@tic
            eija so kriegen zumindest net alle mit was fürn quatsch ich schreibe *gg*
            dafür können wir dir aber editrecht ganz schnell entziehen; weißt du das?

            Kommentar


            • #7
              Original geschrieben von asp2php
              dafür können wir dir aber editrecht ganz schnell entziehen; weißt du das?
              dann müsste ich meine neuen erkenntnisse immer drunter schreiben und ich glaub da is editieren doch willkommener oder?

              Kommentar


              • #8
                So hart durchgreifen wegen ein paar Edit's
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  OffTopic:
                  was wäre, wenn während du deinen Beitrag editierst, ein andere User auf deine (nun nicht mehr gültige) Frage antwortet? Die Folge ist, dass man den Zusammenhang nicht wieder erkennt und der hilfsbereite User für nichts geantwortet hat. Es ist nicht schlimm, dass man nicht weiss, doch es ist schlimm wenn man versucht, es zu vertuschen

                  Kommentar


                  • #10
                    ok ok ich werds mir merken für die zukunft.

                    aber ein problemchen hab ich noch

                    :ratlos:
                    :hilflos:
                    :schlaflos:

                    werden alle korrekt ersetzt, nur smilies wie z.B. :-) :-( 8-)
                    werden es nicht

                    PHP-Code:
                    foreach($SmilieArray as $SingleElement)
                            {
                                
                    $SmilieCode[] = "/" $SingleElement['smilie_code'] . "/";
                                
                    $SmilieIcon[] = "<img src=\"images/smilies/" .  $SingleElement['smilie_icon'] . "\">";
                            }

                    $text preg_replace($SmilieCode$SmilieIcon$text); 
                    Folgende Warnmeldungen tauchen dann auf

                    Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in

                    Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 3 in

                    kann es damit zusammen hängen das die Smilies nicht mit nem : anfangen bzw enden und dadur die / am ende und anfang unötig sind?

                    Kommentar


                    • #11
                      Original geschrieben von st@tic
                      Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 2 in

                      Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 3 in
                      die runden klammern sind sonderzeichen, müssen also maskiert werden.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        kann es damit zusammen hängen das die Smilies nicht mit nem : anfangen bzw enden und dadur die / am ende und anfang unötig sind?
                        ?

                        preg_quote
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          Original geschrieben von wahsaga
                          die runden klammern sind sonderzeichen, müssen also maskiert werden.
                          und wie mach ich das? mit dem backslash?

                          Kommentar


                          • #14
                            wird bei dir derHunds eintrag nicht angezeigt?

                            Kommentar


                            • #15
                              doch sorry steh voll aufm schlauch

                              Edit: gottseidank is das hier ein forum wo die meisten weit weit von mir weg wohnen. sonst würde ich jetzt garantiert von mindestens 4 leuten schon erschlagen worden sein.

                              es klappt jetzt alles einwand frei
                              Zuletzt geändert von st@tic; 12.05.2005, 14:54.

                              Kommentar

                              Lädt...
                              X