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?
    --

    „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
      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
        --

        „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


        • #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.
            --

            „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
              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?
                --

                „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

                Lädt...
                X