solaris-ch
Goto Top

PHP Linebreak aus File löschen

Hallo zusammen. Bitte wiedermal um Hilfe.

Ich habe ein .txt File, welches ich mit PHP bearbeite. In diesem File hat es diverse - sagen wir mal - Records.
An einer bestimmten Stelle eines Records befindet sich immer ein Zeilenumbruch \r\n.

Diesen Zeilenumbruch versuchte ich nun verzweifelt mit str_replace("\r\n","",$record) zu extrahieren. Ging nicht.

Der Zeilenumbruch ist immer noch im File drin und ich kriege den einfach nicht weg. Damit ihr euch das auch vernünftig anschauen könnt, habe ich das File unter folgendem Link zum Download bereitgestellt:
http://www.2lounge.ch/backload_administrator_de_copy.zip

Hat jemand eine Idee wie ich das Teil rausbekomme? Das File ist ja Tabulator getrennt. Ich spreche von dem Zeilenumbruch in Feld 27.

Grüsse und danke im Voraus!

Content-Key: 136523

Url: https://administrator.de/contentid/136523

Printed on: April 19, 2024 at 08:04 o'clock

Member: maretz
maretz Feb 22, 2010 at 07:06:50 (UTC)
Goto Top
Moin,

ggf. hilft dir chop (http://de.php.net/manual/de/function.chop.php) weiter...

Gruß

Mike
Member: solaris-ch
solaris-ch Feb 22, 2010 at 07:18:41 (UTC)
Goto Top
Hallo Mike

ne, hilft leider nicht...

Gruss
Mitglied: 76109
76109 Feb 22, 2010 at 07:29:19 (UTC)
Goto Top
Morgen solaris-ch!

Dieses Beispiel
$str     = "Zeile 1\nZeile 2\rZeile 3\r\nZeile 4\n";  
$order   = array("\r\n", "\n", "\r");  
$replace = '<br />';  
// Verarbeitet \r\n's zuerst, so dass sie nicht doppelt konvertiert werden 
$newstr = str_replace($order, $replace, $str);
habe ich unter dem angegebenem Link von maretz auf anhieb gefunden:
http://de.php.net/manual/de/function.str-replace.php

Gruß Dieter
Member: solaris-ch
solaris-ch Feb 22, 2010 at 07:36:02 (UTC)
Goto Top
Hi,

jup, das habe ich auch gefunden. Nur zieht das bei meinem Fall (Downloadlink im ersten Post) einfach nicht. Ich weiss nicht wieso, aber diese Files machen mich fast wahnsinnig...
Mitglied: 76109
76109 Feb 22, 2010 at 07:40:28 (UTC)
Goto Top
Hallo solaris-ch!

Ich vermute mal, dass es kein Zeilvorschubzeichen ist, zumindest läßt Deine Textdatei nicht darauf schließen.

Schau Dir die Datei in einem Hex-Editor an. Zeilenvorschub = Hex 0D 0A

Gruß Dieter
Member: solaris-ch
solaris-ch Feb 22, 2010 at 07:50:55 (UTC)
Goto Top
Hallo didi1954. Das mit dem HEX ist ein cooler Hinweis. Überall dort wo der Zeilenumbruch steht, ist im HEX Modus 0A0D ersichtlich. Die Frage stellt sich nun, wie ich PHP beibringen kann, diese beiden Werte zu ignorieren, bzw. mit etwas anderem zu replacen...
Mitglied: 76109
76109 Feb 22, 2010 at 07:56:56 (UTC)
Goto Top
Hallo didi1954!

Sorry, hatte zuvor die Zeichen verwechselt, muß eigentlich 0D 0A heißen, wobei 0D für \r und 0A für \n steht oder umgekehrt?

Gruß Dieter
Member: solaris-ch
solaris-ch Feb 22, 2010 at 07:58:26 (UTC)
Goto Top
Mhm. Macht ja nix. Nur eben. PHP. Wir krieg ich das raus?
Mitglied: 76109
76109 Feb 22, 2010 at 08:19:50 (UTC)
Goto Top
Hallo solaris-ch!

Tja, dann sollte es eigentlich gehen?

Und Deine Textdatei ist auch nicht Uni-Code 00 0D 00 0A?

Gruß Dieter
Member: solaris-ch
solaris-ch Feb 22, 2010 at 08:20:42 (UTC)
Goto Top
Der ICH sollte wissen, das \r\n von PHP so nicht erkannt wird. Wieso? weil \r aufgrund des \ als auskommentiert angeschaut wird. Dann macht man \\r\\n und es geht. Sorry, das ich euch alle damit genrvt habe. Aber ich habe wohl den sprichwörtlichen Wald vor lauter Bäumen nicht mehr gesehen...

Grüsse und nochmals danke!!
Mitglied: 76109
76109 Feb 22, 2010 at 08:23:24 (UTC)
Goto Top
Hallo solaris-ch!

Ja, ist den heute schon wieder Montagface-smile

Gruß Dieter
Member: solaris-ch
solaris-ch Feb 22, 2010 at 08:27:39 (UTC)
Goto Top
Es ist immer dasselbe mit diesem Montag. Versaut dir gleich den Start in die neue Woche face-wink

Gruss