Ankündigung

Einklappen
Keine Ankündigung bisher.

Inhalte aus HTML Tags rekursiv via preg_match_all

Einklappen

Neue Werbung 2019

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

  • Inhalte aus HTML Tags rekursiv via preg_match_all

    Hallo PHP Gemeinde,

    wir benötigen eure Gedanken und Unterstützung.

    Wir benutzen dieses Pattern erfolgreich um Inhalte aus HTML Tags auszulesen.

    Code:
    /<(p|li|h1|td|th)\b[^>]*?>(?<tags>.*?)<\/\1>/s
    Nun stoßen wir auf das Problem, dass dies leider nicht rekursiv funktioniert.

    Beispiel:

    Wenn ein <p> Tag innerhalb eines <td> Tags steht.

    Hat jemand eine Idee, wie man das ganze rekursiv lösen kann?

    Herzlichen Dank und einen schönen Vatertag.
    fragen ist kostenlos!


  • #2
    Nutz nen Dom-Parser, dann kannst du alles auch Rekursiv auslesen.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Zitat von tkausl Beitrag anzeigen
      Nutz nen Dom-Parser, dann kannst du alles auch Rekursiv auslesen.
      Herzlichen Dank für die Idee mit dem DOM-Parser. Diese ist zunächst zu aufwändig. Wir würden das gerne mit einem preg_match lösen. Das folgende Pattern funktioniert unter php v5.3.18. Ab v5.3.19 funktioniert es nicht mehr. Erst ab v5.4.x.

      Code:
      %<(p|li|h1|td|th)\b[^>]*?>(?<tags>(?:[^<]*+(?:(?!<(p|li|h1|td|th)\b[^>]*?>|</\1>)<[^<]*+)*+|(?R))*+)</\1>%sx
      Hat jemand eine Idee?
      fragen ist kostenlos!

      Kommentar


      • #4
        Einen DOM-Parser zu verwenden ist wirklich nicht aufwendig. Die Zeit in eine bad practice Lösung, anstatt in eine anständige Umsetzung zu stecken, ist nun wirklich nicht zielführend. Wenn es zu aufwendig ist, einen DOM Parser einzusetzen, dann machst du etwas falsch.

        Kommentar


        • #5
          Zitat von Chris. Beitrag anzeigen
          Einen DOM-Parser zu verwenden ist wirklich nicht aufwendig. Die Zeit in eine bad practice Lösung, anstatt in eine anständige Umsetzung zu stecken, ist nun wirklich nicht zielführend. Wenn es zu aufwendig ist, einen DOM Parser einzusetzen, dann machst du etwas falsch.
          Hallo Chris,

          Du hast vollkommen recht. Der DOM Parser ist toll, keine Frage. Allerdings werden wir diesen erst mit der nächsten Version nutzen, weil wir nicht noch eine Baustelle öffnen möchten, dass wiederum nicht zielführend ist.

          VG
          Buschdieb
          fragen ist kostenlos!

          Kommentar


          • #6
            Zitat von Buschdieb Beitrag anzeigen
            Hallo Chris,

            Du hast vollkommen recht. Der DOM Parser ist toll, keine Frage. Allerdings werden wir diesen erst mit der nächsten Version nutzen, weil wir nicht noch eine Baustelle öffnen möchten, dass wiederum nicht zielführend ist.

            VG
            Buschdieb
            Wer ist wir und wieso schaust du nicht in die PHP Changelog um festzustellen was sich zu den oder vor den jeweiligen Versionen verändert hat ?

            Jede Wette das es einfacher und schneller ist einer Anwendung die Benutzung von DOMDocument bei zu biegen als jedes Regex nebst Wrapper cross-PHP-Version-fähig zu fummeln.
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar

            Lädt...
            X