Zeilenumbruch per PHP verhindern
Hi@ all!
Ich habe ein kleines Problem bei einer PHP Funktion! Hier ist erst mal der Code:
So! Wie ihr seht, öffent das Ding einige Dateien und soll die 37 und 38. Zeile zusammnfügen und diese ausgeben... Das macht das Script auch ganz brav!
Aber, die Ausgabe ist leider falsch! Wie ihr auch erkennen könnt ist der (gesuchte) Text auch auf 2 Zeilen aufgeteilt, jetzt macht mir das Script aber den doofen Zeilenumbruach mit rein, als Leerzeichen... In der Ausgangs txt ist aber keins drann (wird wohl durch den Umbruch kommen) !?
Weiß hier jemand nen Rat, wie man das richtig stellen kann !?
__
Grüße Kallinger
PS: hier noch die Ausgabe
Falsche Ausgabe
Richtige Ausgabe
Also das doofe Leerzeichen soll eben raus!
Ich habe ein kleines Problem bei einer PHP Funktion! Hier ist erst mal der Code:
foreach (glob("$source_path*.txt") as $filename) {
$dfeld = file($filename);
$temp = $dfeld[37].$dfeld[38];
echo $temp."<br />";
}
So! Wie ihr seht, öffent das Ding einige Dateien und soll die 37 und 38. Zeile zusammnfügen und diese ausgeben... Das macht das Script auch ganz brav!
Aber, die Ausgabe ist leider falsch! Wie ihr auch erkennen könnt ist der (gesuchte) Text auch auf 2 Zeilen aufgeteilt, jetzt macht mir das Script aber den doofen Zeilenumbruach mit rein, als Leerzeichen... In der Ausgangs txt ist aber keins drann (wird wohl durch den Umbruch kommen) !?
Weiß hier jemand nen Rat, wie man das richtig stellen kann !?
__
Grüße Kallinger
PS: hier noch die Ausgabe
Falsche Ausgabe
...key=3D= e5ed8
Richtige Ausgabe
...key=3D=e5ed8
Also das doofe Leerzeichen soll eben raus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139855
Url: https://administrator.de/contentid/139855
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
@Kallinger,
nach
sollten die Leerzeichen verschwunden sein.
Gruß
Günni
nach
<?php $temp=str_replace(" ","",$temp);?>
sollten die Leerzeichen verschwunden sein.
Gruß
Günni
Hmm,
wenn ich genau darüber nachdenke:
Denk mal nach!
Allerdings ist dein Skript und die Ausgabe nicht wirklich nachvollziehbar. Etwas mehr von deinem Geheimnis kannst du schon preisgeben.
Warum denken PHP Programmierer eigentlich immer, sie hätten so viel Skill, den sie für sich behalten müssten, damit andere das nicht nachprogrammieren?
Also,
str_replace("\n","",...)
trim() filtert afaik auch Zeilenumbrüche am Anfang und am Ende.
Und wenn du die Ausgabe in HTML und die Anzeige in einem Browser noch nicht verstanden hast, dann sollest du dir nochmal gedanken über Zeilenumbrüche, <br/>, und <pre> machen....
HTH
Lg
Matze
wenn ich genau darüber nachdenke:
Denk mal nach!
Allerdings ist dein Skript und die Ausgabe nicht wirklich nachvollziehbar. Etwas mehr von deinem Geheimnis kannst du schon preisgeben.
Warum denken PHP Programmierer eigentlich immer, sie hätten so viel Skill, den sie für sich behalten müssten, damit andere das nicht nachprogrammieren?
Also,
str_replace("\n","",...)
trim() filtert afaik auch Zeilenumbrüche am Anfang und am Ende.
Und wenn du die Ausgabe in HTML und die Anzeige in einem Browser noch nicht verstanden hast, dann sollest du dir nochmal gedanken über Zeilenumbrüche, <br/>, und <pre> machen....
HTH
Lg
Matze
Guten Morgen....
schlagt bitte euer Buch PHP-Manual auf Seite PHP-Manual - file() auf und liest den Abschnitt:Return Values sorgsam und aufmerksam.
Zu jeder Zeile der Datei die du einlesen möchtest gehört auch der Zeilenumbruch !
Und wie wir gerade gelernt haben wird dir dieser auch mit jeder Zeile der Datei zurückgegeben.
Und dann ist es doch ganz normal das sich zwischen zwei dieser Zeichenketten ein Zeilenumbruch befindet bzw. es sind sogar ZWEI, ein weiteres am Ende der zweiten Zeichenkette.Schaut man sich die Ausgabe an, so stehen die beiden Zeilen je in einer Zeile - entsprechend der Ausgabe mit den Zeilenumbrüchen in der Mitte und am Ende.
Aber was macht HTML bzw. dein Browser mit diesem Zeichen ?
Dar in HTML keine (bzw- kaum) Rücksicht auf einen Zeilenumbruch genommen wird und dieser wenn dann nur zur Formatierung des Quelltextes gilt aber nicht für die Ausgabe.
Aber irgendwas muss der Browser nun mit diesem Zeilenumbruch anfangen... und so wird es als Leerzeichen dargestellt.
Möchtest du also dein vermeintliches "Leerzeichen" weg bekommen muss du den Zeilenumbruch entfernen (z.B. ersetzen) !
~Arano
schlagt bitte euer Buch PHP-Manual auf Seite PHP-Manual - file() auf und liest den Abschnitt:Return Values sorgsam und aufmerksam.
Zu jeder Zeile der Datei die du einlesen möchtest gehört auch der Zeilenumbruch !
Und wie wir gerade gelernt haben wird dir dieser auch mit jeder Zeile der Datei zurückgegeben.
Und dann ist es doch ganz normal das sich zwischen zwei dieser Zeichenketten ein Zeilenumbruch befindet bzw. es sind sogar ZWEI, ein weiteres am Ende der zweiten Zeichenkette.
$arrZeilen = file('datei.txt');
// vorrausgesetzt der zeilenumbruch wird durch "\n" dargestellt (\n | \r | \r\n)
$arrZeilen = array
(
=> "aaaa\n",
[1] => "bbbb\n",
[2] => "cccc\n",
[3] => "dddd"
);
echo $arrZeilen[1].$arrZeilen[2];
echo "bbbb\n"."cccc\n";
Aber was macht HTML bzw. dein Browser mit diesem Zeichen ?
Dar in HTML keine (bzw- kaum) Rücksicht auf einen Zeilenumbruch genommen wird und dieser wenn dann nur zur Formatierung des Quelltextes gilt aber nicht für die Ausgabe.
Aber irgendwas muss der Browser nun mit diesem Zeilenumbruch anfangen... und so wird es als Leerzeichen dargestellt.
Möchtest du also dein vermeintliches "Leerzeichen" weg bekommen muss du den Zeilenumbruch entfernen (z.B. ersetzen) !
~Arano
Ohja, da hast du recht !
So genau habe ich da ehrlich gesagt auch gar nicht drüber nachgedacht - ob einfache oder doppelte Anführungszeichen.
(Das war ja auch nur zur Verdeutlichung gedacht um zu zeigen wie es dann in dem Array stehen würde, okay mein Patzer... wird korrigiert.)
~Arano
So genau habe ich da ehrlich gesagt auch gar nicht drüber nachgedacht - ob einfache oder doppelte Anführungszeichen.
(Das war ja auch nur zur Verdeutlichung gedacht um zu zeigen wie es dann in dem Array stehen würde, okay mein Patzer... wird korrigiert.)
Abgesehen davon heißt die Lösung wie bereits gesagt: trim() oder rtrim()
Das ist richtig, aber was bringt einem die beste Lösung wenn man sie bzw. die Ursache des Problems __nicht versteht__ !?~Arano