Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] HTML-Code an </p>-Tags außerhalb von Tabellen splitten

Einklappen

Neue Werbung 2019

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

  • [Erledigt] HTML-Code an </p>-Tags außerhalb von Tabellen splitten

    Hallo,

    ich verwende bisher explode(), um HTML-Code an schließenden Paragraph-Tags in ein Array zu splitten. Nun möchte ich aber, dass schließende Paragraph-Tags in Tabellen ignoriert werden:

    PHP-Code:
    <p>Soll</p>
    ...
    <
    td>
    <
    p>Soll nicht</p>
    <
    p>Soll nicht</p>
    </
    td>
    ...
    <
    p>Soll</p>
    <
    p>Soll</p
    soll also in folgendes Array führen:

    PHP-Code:
    Array
    (
        [
    0] => "<p>Soll</p>"
        
    [1] => "...
    <td>
    <p>Soll nicht</p>
    <p>Soll nicht</p>
    </td>
    ...
    <p>Soll</p>"
        
    [2] => "<p>Soll</p>"

    Ich vermute, dass ich das durch reguläre Ausdrücke in den Griff bekommen könnte, aber mir fehlt der Punkt, an dem ich den Hebel ansetzen kann.

    otnememento

  • #2
    Ja und?
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Naja, ich dachte, jemand erfahrenes könnte mir einen Gedankenanstoß in eine mögliche Richtung geben (erwarte keine fertige Lösung).

      Kommentar


      • #4
        Benutze DOMXml
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          DomXML sieht schonmal hilfreich aus, danke für den Hinweis. Interessehalber: Weißt du, ob das auch mit regulären Ausdrücken ginge und hättest du da auch hilfreiche Stichwörter dazu?

          Kommentar


          • #6
            Ja das ginge und Stichwörter kann man da nicht viele geben. Vielleicht Assertions. Das ist dann halt ein spezifischer Ausdruck.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Ich habe das Problem nun so gelöst, dass abschließende Paragraph-Tags in Tabellenzellen maskiert werden:

              PHP-Code:
              $dom = new DomDocument();
              $dom->loadHTML($text);
                      
              foreach (
              $dom->getElementsByTagName('td') as $element) {
                  foreach (
              $element->childNodes as $children) {
                      if (
              $children->nodeName == "p")
                          
              $children->nodeValue $children->nodeValue "###p###";
                  }
              }  
                      
              $text $dom->saveHTML();
              $text str_replace('###p###</p>''< /p>'$text);

              $parray explode('</p>'$text);
              $parray str_replace ('< /p>''</p>'$parray); 
              Vielleicht gibt es bessere Lösungen für mein Problem, aber es ist immerhin ein Lösung.

              Edit: "Beitrag als erledigt markieren" hat den Titel in Entitäten umgewandelt.

              Kommentar


              • #8
                Wo liegt eigentlich der tiefere Sinn der Übung?
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar

                Lädt...
                X