nochmals preg_replace

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

  • #16
    Guten Morgen.

    Hat hier keiner noch ne Idee?

    Gruss

    Katharina

    Kommentar


    • #17
      Mahlzeit...

      nein, du musst nich alle <a> umwandeln... sondern das preg_match() auf deine [AURL] tags umbauen....

      Die Ladezeit müsste man austesten, da geb ich dir allerdings recht, dass ein paar msec. länger dauern wird.

      Das problem, bei einer einzigen preg_replace() Anweisung, die alles zusammen kann ist, dass es auf mächtig viele eventualitäten prüfen muss.
      z.B. wenn jemand ein [AURL] tag benutzt, und nach dem "]" eben nicht sofort weiterschreibt, sondern irgendein Steuerzeichen angibt, stehst dir mit (?<!\S) schon auf'm Schlauch.
      Sicherer wär's, wenn du tatsächlich die inhalte der Tags, die nicht in die Konvertierung einbezogen werden sollen, erstmal aus dem Text extrahierst, dann umwandelst und danach wieder einfügst.
      Dann kann in dem Tag alles mögliche stehen, und du brauchst dir keinen Kopf drum zu machen.

      Kommentar


      • #18
        Original geschrieben von ankh
        Mahlzeit...

        nein, du musst nich alle <a> umwandeln... sondern das preg_match() auf deine [AURL] tags umbauen....

        Die Ladezeit müsste man austesten, da geb ich dir allerdings recht, dass ein paar msec. länger dauern wird.

        Das problem, bei einer einzigen preg_replace() Anweisung, die alles zusammen kann ist, dass es auf mächtig viele eventualitäten prüfen muss.
        z.B. wenn jemand ein [AURL] tag benutzt, und nach dem "]" eben nicht sofort weiterschreibt, sondern irgendein Steuerzeichen angibt, stehst dir mit (?<!\S) schon auf'm Schlauch.
        Sicherer wär's, wenn du tatsächlich die inhalte der Tags, die nicht in die Konvertierung einbezogen werden sollen, erstmal aus dem Text extrahierst, dann umwandelst und danach wieder einfügst.
        Dann kann in dem Tag alles mögliche stehen, und du brauchst dir keinen Kopf drum zu machen.
        Hallo

        Danke für deinen Tipp.
        Wie würde dies denn aussehen? Das beste wäre schon gewesen direkt so aber wenns anders auch geht warum nicht.
        Ich denke ich weiss ungefähr wie du meinst. Also das man die strings [AURL=...]IRGENDEIN SATZ BAU[/AURL] rausfiltern würde und dann wenn ich den ersatz hinter mir habe dann dies wieder einzufügen. Nur wie mache ich dies am besten?

        Gruss

        Katharina

        Kommentar


        • #19
          so, wie's da oben im code steht...

          mit 'nem preg_match_all() alles in'n array ziehen.

          dann, jedes element, das du dir gezogen hast, mit'nem Platzhalter versehen...

          Deine weiteren Umwandlungen durchführen...

          Die Platzhalter wieder durch die Arrayeinträge ersetzen

          feddich...

          Kommentar


          • #20
            da es sich so anhört, als wenn hier einige pattern experten schreiben,
            möchte ich mal ganz dezent auf eine ähnliche frage hinweisen, die ich im
            ASP bereich dieses forums gepostet hab! es geht mir ja auch nur um ein
            pattern + backreference, also ist die sprache egal

            http://www.php-resource.de/forum/sho...threadid=54860

            wäre wirklich super klasse, wenn einer von euch dazu eine idee hat
            GLORIA PERPETUA

            Kommentar


            • #21
              Original geschrieben von ankh
              so, wie's da oben im code steht...

              mit 'nem preg_match_all() alles in'n array ziehen.

              dann, jedes element, das du dir gezogen hast, mit'nem Platzhalter versehen...

              Deine weiteren Umwandlungen durchführen...

              Die Platzhalter wieder durch die Arrayeinträge ersetzen

              feddich...
              Guten Abend

              Ich habe es nun geschaft einen preg_match_all zu basteln der mir diese [autl=..... geschichte ausliest. Jedoch wie bekomme ich bekomme ich nun eine variabel mit dem string ohne diese [aurl.... teile, und wie kann ich dann wenn alles fertig ist die fehlenden teile denn wieder einfügen?

              gruss

              Katharina

              Kommentar


              • #22
                hmm,

                ich verstehe das problem nicht?
                PHP-Code:
                $all '[aurl]'.$sting.'[/aurl]'
                oder entferne es doch erst garnicht ...
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #23
                  Original geschrieben von derHund
                  hmm,

                  ich verstehe das problem nicht?
                  PHP-Code:
                  $all '[aurl]'.$sting.'[/aurl]'
                  oder entferne es doch erst garnicht ...
                  Hmm und ich verstehe deine erklärung dazu nicht

                  Nach dem das es wohl nicht möglich ist etwas auszuschliessen aus preg_replace (nehme ich mal an da du nicht mehr geantwortet hast), fand ich den tip der hier kam als einleuchtend mit dem entfernen und nachher wieder einfügen.

                  Wenn ich dein PHP Code ansehe verstehe ich nicht was er bewirken soll.
                  Ich möchte ja kein String in die aurl einfügen oder sonstiges. Ich möchte alle [AURL=...]...[/AURL] aus einem text haben, um dann über eine oder mehrere funktionen weiter verarbeiten zu können, und am schluss dann wieder diese genau so wie sie waren an der stelle einzufügen. Daher habe ich die Variante mit den Platzhaltenr einleuchtend und gut gefunden. Wenn es jedoch eine andere möglichkeit gibt, oder ich doch sowas ausschliessen kann, bin ich auch gerne bereit dies zu verwenden *g*
                  Ich habe mal beim preg_match_all diesen search pattern: "/\[aurl=(&quot;|['\"]?)([^\"']+)\\1](.+)\[\/aurl\]/esiU"
                  Er findet mir auch alle jedoch weiss ich nicht wie ich nun weiter arbeiten müsste. Man scheint ja nichts ausschliessen zu können beim preg_replace direkt und das würde ja anscheinend auch zu sehr auf die performance gehen.

                  Gruss

                  Katharina

                  Kommentar


                  • #24
                    Moin

                    Habs nun anders hinbekommen. Danke für alle Tips hier!

                    Gruss

                    Katharina

                    Kommentar

                    Lädt...
                    X