Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_replace nicht, wenn um das gesuchte etwas bestimmtes steht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] preg_replace nicht, wenn um das gesuchte etwas bestimmtes steht

    Hi Leute,

    Ich arbeite ja schon was länger an meinem CMS, bei dem man auch mit einfachen Codes Plugins an der Stelle des Codes ausführen kann.

    Beispiel:
    Code:
    #!test;
    wird durch
    Code:
    <div id="abc">Das ist ein Newsbeitrag</div>
    ersetzt.

    Das mache ich mit preg_replace();

    Mein Problem ist alerdings:
    Die Seiten werden mit einem Editor bearbeitet. Im Editor stehen aber auch die Codes. Diese werden dann mit geparst, sodass im Editor nicht #!test;, sondern <div>... steht.

    Wie kann ich also sagen, dass nicht geparst werden darf, wenn der Code in einer Textarea mit der id 'editor' steht?!?

    MfG. DjScaleo


  • #2
    Indem Du die Editoreinträge nicht oder anders parst?! Solch eine Frage unter Fortgeschritten ist lächerlich.

    [MOD: verschoben]
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Ich parse die ganze HTML-Seite... Die Frage war ja, wie ich dafür sorge das der dabei nicht die Editor-Einträge nimmt...

      Kommentar


      • #4
        Zitat von djscaleo Beitrag anzeigen
        Die Seiten werden mit einem Editor bearbeitet. Im Editor stehen aber auch die Codes. Diese werden dann mit geparst, sodass im Editor nicht #!test;, sondern <div>... steht.
        Ja warum stehen sie denn da?

        Du wirst es doch wohl hinkriegen, vor dem Ausgeben des Codes zum Editieren die noch ungeparste Rohform, die du aus deiner Datenhaltung ausgelesen hast, zwischenzulagern und dann innerhalb des Editor-Bereiches auszugeben ...?

        Wie kann ich also sagen, dass nicht geparst werden darf, wenn der Code in einer Textarea mit der id 'editor' steht?!?
        Bspw. per negative Lookahead assertion.

        Aber überhaupt nicht zu parsen, scheint mir die bessere Alternative zu sein, s.o.

        Kommentar


        • #5
          Überhaupt nicht parsen geht nicht, da auch der Editor via Plugin-Code eingebunden wird...

          Aber danke für die Antwort!

          Kommentar


          • #6
            Sorry, aber Dein Setup wird immer kryptischer für uns. Wir kennen halt Dein System nicht. Ein Editor, den man nicht frei initialisieren kann?
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Wie stehen denn deine Daten in der Datenbank?
              "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

              Kommentar


              • #8
                In der DB steht einfach nur #!edit_page; als Seiteninhalt.

                #!edit_page; bewirkt aber, das #!edit_page; durch den Editor mit dem Seiteninhalt x ersetzt wird.

                In Seite x steht aber auch irgendwo #!news_startseite;, wodurch der Inhalt im Editor auch geparst wird...
                Nebenbei:
                Jedes mal, wenn mein Script ein Plugin (#!xyz durch etwas anderes ersetzt hat, durchsucht es anschließend noch einmal die ganze Seite auf neue Codes. Bei jedem Durchlauf wird immer nur ein Code geparst, dann wird wieder neu gesucht, so lange, bis keine Codes mehr da sind.
                Ich möchte jetzt aber, das ich im Editor dann #!news_startseite; da stehen habe und keine 10 news-Einträge...

                MfG. DjScaleo

                Kommentar


                • #9
                  Dann musst Du das so programmieren. Was erwartest Du denn jetzt für eine ANtwort!
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Ja kann man nicht irgendwie sagen, das etwas nicht geparst werden soll, wenn es mit irgendwelchen aderen Zeichen in ner textarea eingeschlossen ist?!?

                    also was weiß ich (^<textarea)(*)#!([0-9A-Za-z]);(*)(^</textarea>) oder so?!?

                    Kommentar


                    • #11
                      Zitat von djscaleo Beitrag anzeigen
                      Ja kann man nicht irgendwie sagen, das etwas nicht geparst werden soll, wenn es mit irgendwelchen aderen Zeichen in ner textarea eingeschlossen ist?!?
                      Vielleicht kannst du anfangen, Antworten komplett zu lesen?
                      Das wäre fein.

                      Kommentar


                      • #12
                        Ich glaube wohl kaum, dass die Textarea Teil des zu parsenden Codes ist..

                        Ansonsten, bis auf ein paar Assertions sind reg. Ausdrücke nicht für negative Patterns ausgelegt. Auch mit negativen Zeichenklassen u.ä. sind reg. Ausdrücke immer auf Matching ausgelegt, nicht auf Nicht-Matching.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          So.

                          Wurde ja schon anscheinend nen paar mal hier gesagt: Ich habs jetzt doch anders gemacht.

                          Bei der Seitenverwaltung und der Newsverwaltung wird vorher der Text, der aus der DB kommt, auf Codes überprüft. Gefundene Codes bekommen ne andere Syntax, sodass sie nicht geparst werden. Speichere ich dann wieder die Seite, wird wieder der Syntax in das alte System zurück geschrieben.

                          MfG. DjScaleo

                          Kommentar

                          Lädt...
                          X