Zeilenumbrueche verschwinden beim laden einer txt von rem. Host
Oliver Sieben
- cgi
0 Tobi Brandt0 Stefan Muenz0 Calocybe
Hallo,
ich moechte mit folgendem einfachen Konstrukt eine txt Datei von einem anderen Server laden, weiterverarbeiten(!) und ausgeben.
use LWP::Simple;
$url = "http://www.einedomain.de/datei.txt";
$doc = get($url);
print "Content-type: text/html\n\n";
print "$doc";
Lieder gehen mir hierbai die Zeilenumbrueche verloren, d.h. Netscape zeigt mir einen fortlaufenden Text an, klar der <br> tag fehlt.
Wie bekomme ich nun die Datei zeilenweise eingelesen, um sie so weiterverarbeiten zu koennen.
Vielen Dank
Oliver Sieben
Hallo,
ich moechte mit folgendem einfachen Konstrukt eine txt Datei von einem anderen Server laden, weiterverarbeiten(!) und ausgeben.
use LWP::Simple;
$url = "http://www.einedomain.de/datei.txt";
$doc = get($url);print "Content-type: text/html\n\n";
print "$doc";Lieder gehen mir hierbai die Zeilenumbrueche verloren, d.h. Netscape zeigt mir einen fortlaufenden Text an, klar der
»» tag fehlt.
Wie bekomme ich nun die Datei zeilenweise eingelesen, um sie so weiterverarbeiten zu koennen.
Vielen Dank
Oliver Sieben
Hoffentlich helfe ich dir damit:
###datei oeffnen
open(DATEI,"datei.txt")
###zeilenweise wo ablegen
while($zeile = <DATEI>){
####z.b.
@zeilen[i] = $zeile;
i++;
}
Mit Vorbehalt (self.perlkenntnisse = zwei Tage)
:)))
Also, ich habe mir das zufällig gestern durchgelesen und ich bin noch nagelneu auf dem Gebiet, aber vielleicht hilft's dir ja weiter. Auf jeden Fall kannst du mit diesem <>-Operator (<DATEI>) Dateien zeilenweise einlesen.
Gruß,
Tobias
Hallo Oliver,
print "Content-type: text/html\n\n";
print "$doc";
Lieder gehen mir hierbai die Zeilenumbrueche verloren, d.h. Netscape zeigt mir einen fortlaufenden Text an, klar der
»» tag fehlt.
Eben. Dann setz ihn doch einfach, und zwar so:
print "Content-type: text/html\n\n";
print "<html><body><pre>$doc</pre></body></html>";
viele Gruesse
Stefan Muenz
Oder noch einfacher:
print "Content-type: text/plain\n\n";
print "$doc";
viele Gruesse
Stefan Muenz
Hi!
print "Content-type: text/html\n\n";
print "$doc";Lieder gehen mir hierbai die Zeilenumbrueche verloren, d.h. Netscape zeigt mir einen fortlaufenden Text an, klar der
»» tag fehlt.
Das einfachste waere, den richtigen Content-Type auszugeben. Denn was Du da an den Browser sendest, ist ja gar kein HTML, sondern normaler Text. Also:
print "Content-type: text/plain\n\n";
Wie bekomme ich nun die Datei zeilenweise eingelesen, um sie so weiterverarbeiten zu koennen.
Die direkt Antwort auf diese Frage ist allerdings, nach dem Einlesen den gesamten Text an den Zeilenumbruechen zu splitten:
@doc = split(/\n/, $doc);
Es kann aber sein, dass die Textdatei im Microsoftformat gespeichert ist, d.h. Du muesstest an /\r\n/ splitten, oder fuer das Mac-Format an /\r/. Wir hatten das Thema schonmal ausfuehrlich hier, vielleicht findet noch jemand den Thread im Archiv und gibt uns den Link. Wenn Du sicher sein kannst, dass der Text im Unix-Format vorliegt, kannst Du einfach das /\n/ als Trennzeichen voraussetzen, wie oben.
Dann kannst Du das in einem Loop wieder ausgeben:
for (@doc) {
print $_, "<BR>\n";
}
Bye, Calocybe