Kleines Problem beim Lesen einer datei

  1. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    Ja ich schon wieder! :)
    Also, das Skript läuft bei mir am G4 einwandfrei, nur am Server funktioniert es nicht ganz und ich habe keine Ahnung warum!

    PHP:
    $pfad="../text/de_public.txt";

    echo 
    "<center><h1><u><b>Lauftext &Auml;ndern!</b></u></h1><p>";
    if (
    is_file($pfad))            // Pfad überprüfen
    {
        if(
    $datei fopen($pfad,"r")) // Datei öffnen
        
    {
            while (!
    feof($datei))
            {
                
    $z fgets($datei,1048576);
            }
            echo 
    "Es wurden ".strlen($z)." Daten gelesen<br>$z";
    Hier mal der Ausschnit der Schuldig ist! :D

    Wenn ich das am G4 ausführe bekomme ich als Wert für $z 4644. Am Server kommt 11!
     
    ThaHammer, 31.03.2005
  2. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    me again, too ;)
    Genau eine Zeile? Oder kommen mehrere? fgets hört ja am Zeilenende auf und Du weißt ja ,das es Unterschiede für die Zeilenumschaltung zwischen Mac/LINUX/Windows gibt. Meinst Du die Zahlen als Werte für $z oder strlen($z) ?
     
    wegus, 31.03.2005
  3. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    Warum liest der unter Linux nur eine Zeile ein und am MAC die ganze Datei?

    Ich meinte die String Länge! Das ist allerdings jetzt nur zum Testen und überprüfen der Variable $z so eingebaut!

    OK! Verstehe ich das richtig? Ich muß erst die Länge der Datei ermitteln und dann solange auslesen wie die Datei groß ist?
    Oder wie umgehe ich das am geschicktesten?

    Lauter Anfängerfragen halt! :D
     
    ThaHammer, 31.03.2005
  4. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Na und jeder ist mal ein Anfänger!

    Zeilenumbrüche unterscheiden sich leider:

    CR= Carriadge Return ist der Wagenrücklauf bei einer mechanischen Schreibmaschine ( stammt noch aus Fernschreiberzeiten)

    LF= Line Feed ist der Vorschub um eine Zeile nach unten, damit nicht die selbe Zeile bei einer Schreibmaschine zweimal beschrieben wird.

    Windows macht: CRLF in Sonderzeichen im String ist das: "\r\n"
    UNIX macht : LF in Sonderzeichen im String ist das: "\n"
    Mac OS macht : CR in Sonderzeichen im String ist das: "\r"

    Also 3 Schreibweisen und alle meinen das Selbe: Zeilenende

    Du siehst jeder kocht den Brei anders ;) . Es ist auch möglich, das ich Mac OS und LINUX gerade mal wieder verwechsle ( ich arbeite ständig mit Allen Systemen). Wichtig ist halt, das Du die Datei entweder in einem Rutsch einliest ( dafür gibts auch ne Funktion -> www.php.net/manual/de ) oder eben alle Zeilen bis zum Dateiende!
     
    wegus, 31.03.2005
  5. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    Mann sag halt das es einfach ist, wenn man den richtigen Befehl findet! :D

    file_gets_content ist die Lösung gewesen! Einfacher gehts ja wohl nicht.
    Man sollte nicht immer das erste ausprobieren was man in einem Buch findet, ist nicht immer die Beste Lösung.
     
    ThaHammer, 01.04.2005
Die Seite wird geladen...
Ähnliche Themen - Kleines Problem beim
  1. max@hismac
    Antworten:
    1
    Aufrufe:
    966
  2. fabib
    Antworten:
    9
    Aufrufe:
    959
  3. macbooklover
    Antworten:
    6
    Aufrufe:
    843
  4. flozirkus
    Antworten:
    3
    Aufrufe:
    923
    Benjamin-Do
    30.03.2008