Kleines Problem beim Lesen einer datei

T

ThaHammer

Aktives Mitglied
Thread Starter
Dabei seit
01.06.2004
Beiträge
3.303
Reaktionspunkte
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!
 
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) ?
 
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
 
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!
 
Zuletzt bearbeitet:
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.
 
Zurück
Oben Unten