tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1427
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Igor1312 Igor1312 ist offline Mitglied
    Registriert seit
    Feb 2010
    Beiträge
    22
    Hi,

    ich habe ein Perl-Script, welches Email bei verschiedenen POP3 Accounts abholt. Falls dabei was schiefläuft, zeit das Script es an. Normalerweise wird das Ding per Cron aufgerufen.

    Nun möchte ich das zwischendurch manuell starten und zwar über einen Browser.
    Ich habe ein weiteres Perl Script erstellt, welches lediglich das mailholen.pl aufruft und die Ausgabe dessen mit print() ausgibt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    #!/usr/bin/perl -w
    # --
     
    use strict;
    use warnings;
    use CGI;
     
    print "content-type: text/html\n\n";
    print "<html><body>\n";
     
    my $output = `/usr/bin/perl mailholen.pl`;
    print "$output";
     
    print "\n</body></html>";

    Nun das Problem:
    Die Ausgabe von mailholen.pl erscheint unformatiert im Browser, ohne Zeilenumbrüche.
    Im Skript selbst werden print "...\n"; Kommandos benutzt und in der Shell funktionierts auch.

    Wie kriege ich das denn ordenrlich formatiert hin?
    Danke!

    Tschö,
    Igor
     

  2. #2
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Das Problem ist dass ein Browser keine Shell ist.
    Wenn Du Dir im Browser den ausgegebenen Quelltext ansiehst, sollten dort eigentlich die Zeilenumbrüche vorhanden sein.
    Damit diese auch im Browserfenster sichtbar sind, musst Du (X)HTML-Zeilenumbrüche verwenden.
    Ändere \n für HTML also in <br>\n oder für XHTML in <br />\n.
    Quelle: SelfHTML - erzwungener Zeilenumbruch

    Gruss Dr Dau

    [edit]
    In PHP gibt es dazu die Funktion nl2br(), leider gibt es diese nicht in Perl.
    Es gibt aber Ansätze wie man die Zeilenumbrüche trotzdem in Perl realisieren kann.
    Damit würdest Du Dir das lästige umschreiben Deines Scripts ersparen.
    Siehe Google: perl nl2br
    [/edit]
    Geändert von Dr Dau (20.08.10 um 13:50 Uhr)
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  3. #3
    Igor1312 Igor1312 ist offline Mitglied
    Registriert seit
    Feb 2010
    Beiträge
    22
    Hi Dr. Dau,

    ja, eine halbe Stunde nach dem Posting hab ich es dann auch bemerkt
    $string =~ s/regexp/Ersatz/Optionen;
    aus http://www.informatik.uni-frankfurt..../perl_reg.html

    Danke trotzdem!

    Tschö,
    Igor
     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 09.11.10, 23:50
  2. Antworten: 3
    Letzter Beitrag: 25.12.08, 22:24
  3. Antworten: 2
    Letzter Beitrag: 02.09.04, 11:18
  4. Perl/CGI Ausgabe mit PHP-Code
    Von Alces im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 08.12.03, 13:21
  5. Antworten: 0
    Letzter Beitrag: 05.12.02, 18:14