Jörg: Zaubertrick oder habe ich Tomaten auf den Augen?

Hallo Forum,

ich lasse 2 identische Quelltexte dieselbe Funktion durchlaufen und erhalte ein unterschiedliches Ergebnis.

Keine Ahnung, wo ich ansetzen soll, aber vielleicht habe ich auch etwas übersehen??

Ich lasse mir den Text vor Durchlaufen der Funktion ausgeben, anschließend wird der Text per mail an mich gesendet. Dort schaue ich mir Quelltext und Ergebnis an.

Quelle vor der Funktion und Quelltext der Mail 1 + 2:

[b]Zeile 1[/b]
[b]Zeile 2[/b]
Zeile 3
[color=#E86E04]Zeile 4[/color]
[b][color=#008E02]Zeile 5[/color][/b]
[s]Zeile 6[/s]

<strong>Zeile 1</strong><br />
<strong>Zeile 2</strong><br />
Zeile 3<br />
<span style="color: #E86E04">Zeile 4</span><br />
<strong><span style="color: #008E02">Zeile 5</span></strong><br />
<span style="text-decoration: line-through">Zeile 6</span><br />

------------------------------------------------------------------------------------



[b]Zeile 1[/b]
[b]Zeile 2[/b]
Zeile 3
[color=#E86E04]Zeile 4[/color]
[b][color=#008E02]Zeile 5[/color][/b]
[s]Zeile 6[/s]

<strong>Zeile 1</strong><br /><br />
<strong>Zeile 2</strong><br /><br />
Zeile 3<br /><br />
<span style="color: #E86E04">Zeile 4</span><br /><br />
<strong><span style="color: #008E02">Zeile 5</span></strong><br /><br />
<span style="text-decoration: line-through">Zeile 6</span><br /><br />

Mail:

Wo setze ich hier an??

Mal ganz unabhängig, was in der Funktion drinne steht, muss doch bei selbem Input der selbe Output erscheinen 😕

Kann es sein, das die Quellen (oder eine der Quellen) unsichtbare Zeichen enthält? Allerdings kommt der Inhalt in beiden Fällen aus derselben Tabelle derselben DB.

Bin grad' etwas ratlos.

Jörg

  1. Hallo Jörg,

    vielleicht habe ich auch etwas übersehen??

    Ganz bestimmt. Wenn Du diesen String von der gleichen Stelle der DB bekommst (gleiche Table, gleiche Row, gleiche Spalte) und den gleichen Verarbeitungsweg nehmen lässt, muss das gleiche rauskommen.

    Ist der Unterschied "zufällig"? Oder ist da irgendeine Form von Systematik drin?

    Kann es sein, das die Quellen (oder eine der Quellen) unsichtbare Zeichen enthält? Allerdings kommt der Inhalt in beiden Fällen aus derselben Tabelle derselben DB.

    "dieselbe Tabelle" heißt nicht "die gleichen Daten". Ist es auch die gleiche Row? Die gleiche Spalte? Wenn nicht - vergleiche die Daten. $a == $b, strlen($a) == strlen($b) - eine ganz einfache Sache könnte sein, dass ein String Unix-Zeilenenden und der andere Windows-Zeilenenden verwendet.

    Wenn die Ausgangsdaten definitiv identisch sind - dann war es nicht der gleiche Verarbeitungsweg. Wenn beides über den Mailweg gelaufen ist, könnte es sein, dass der Leitweg der Mails verschieden war. Und vielleicht hat da irgendwer die Zeilenenden modifiziert.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Rolf,

      doch, doch. Was die Tabellen angeht, ist es dieselbe Spalte, dieselbe row.

      Wenn die Ausgangsdaten definitiv identisch sind - dann war es nicht der gleiche Verarbeitungsweg. Wenn beides über den Mailweg gelaufen ist, könnte es sein, dass der Leitweg der Mails verschieden war. Und vielleicht hat da irgendwer die Zeilenenden modifiziert.

      Genau so ist/war es.

      Ich bin den kompletten Verarbeitungsweg nochmal durchgegangen.

      Und hatte tatsächlich übersehen, dass inmitten des Verarbeitungsweges der 2 Variante noch ein nl2br() sein "Unwesen" trieb. Es waren also doch die Tomaten auf den Augen und kein Zaubertrick.🤪😇

      Danke für die Hilfe am Wochenende von Dir! 👍 Wünsche Dir (und allen anderen auch) ein schönes Selbiges,

      Jörg

      1. Hallo Jörg,

        Und vielleicht hat da irgendwer die Zeilenenden modifiziert.

        Genau so ist/war es.

        immer dann, wenn du zwei Texte hast, die identisch aussehen, aber die Logik sagt, dass sie doch unterschiedlich sein müssen, sollte dir ein Schlüsselwort im Kleinhirn aufleuchten: Steuerzeichen!

        Und hatte tatsächlich übersehen, dass inmitten des Verarbeitungsweges der 2 Variante noch ein nl2br() sein "Unwesen" trieb.

        Aber dann hättest du doch die eingefügten <br/> sehen müssen - oder womit hast du das Ergebnis betrachtet? Sag jetzt bitte nicht, mit einem Browser! Texte (auch Quelltexte für eine Programmier- oder Auszeichnungssprache) kontrolliert man immer zuerst mit einem ganz normalen Texteditor.

        Und wenn man dann die Unterschiede, die eigentlich da sein müssen, nicht erkennt, schaut man sich die Texte mit einem Hex-Editor an. Dann sieht man wirklich auf Byte-Ebene, was unterschiedlich ist - z.B. unterschiedliche Zeichencodierung, Tabs statt Spaces, \r\n anstatt \n oder auch wirkungslose Steuerzeichen mitten im Text.

        Danke für die Hilfe am Wochenende von Dir! 👍
        Wünsche Dir (und allen anderen auch) ein schönes Selbiges

        Danke, ebenso. 😀

        Live long and pros healthy,
         Martin

        --
        Wer respektiert werden will, sollte zunächst damit anfangen, andere zu respektieren.
        1. Hallo Martin,

          Aber dann hättest du doch die eingefügten <br/> sehen müssen -

          Natürlich, schau Dir nochmal den Output des Ausgangspost an.
          Das war ja der Unterschied.
          Aber den Input war identisch.

          Wie schon gesagt, da war zwischen Input und Output noch ein nl2br(), was für Augen hinter Tomaten schlicht nicht zu erkennen war 😊

          Gruß, Jörg