"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

BIG PHP Problem

bBU.CyTrobIc 24.10.2003 - 19:12 1066 24
Posts

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
Hi there,

ich hab ein Problem mit PHP, ich hab folgendes Script von Windows 2000 auf Windows XP portiert, aber jetzt gibts ein Problem, denn ich hol mir die Dateinamen aus einer TXT Datei, leider werden die \n nicht ersetzt, zumindest siehts so aus.

Script:
Code: PHP
<?php

$name = "datei.txt";

$source = fopen($name, "r");

$data = fgets($source, 1024);

$data = ereg_replace("\n", "", $data);


$fa = fopen($data, "r");

while(!feof($fa)){
$zeile = fgets($fa, 1024);
echo("$zeile<br>");
}

fclose($source);
fclose($fa);

?>

Ausgabe im Browser:

Warning: fopen(sehen1.txt ): failed to open stream: Invalid argument in c:\programme\apache\apache\htdocs\test.htm on line 12

...wobei die PHP und Apache Versionen gleich sind, weiss hier jemand abhilfe, ist ech dringend !!!

Dank euch schonmal.

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Vermutlich ist werden in der Datei $name die Zeilen nicht mit \n sondern \r\n unterbrochen?

Ists nicht easier mit
Code: PHP
foreach (file($name) as $line) { echo join("<br>", file($line)); }
(oder so, pseudokot).

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
Jo es is der \r\n ! Danke !

Was hat das \r denn da zu suchen ? Bzw wozu ist es da ?

Sticker

Big d00d
Avatar
Registered: Mar 2003
Location: Wien
Posts: 177
\r = Return

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von bBU.CyTrobIc
Was hat das \r denn da zu suchen ? Bzw wozu ist es da ?

Das fragst du am besten die Erfinder von MS-DOS persönlich. Wahrscheinlich wissen sie's selber nicht.

Brother Quintus

(!) o_O :O ^_^
Avatar
Registered: Oct 2003
Location: Vienna, Austria
Posts: 657
geht ned nl2br()? is viel simpler...

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Ringding
Das fragst du am besten die Erfinder von MS-DOS persönlich. Wahrscheinlich wissen sie's selber nicht.
kommt iirc von da schreibmaschine, bzw. den ersten druckern...
\r -> wagenrücklauf, damit tätst aber noch nicht in der nächsten zeile schreiben
\n -> neue zeile, alleine würdest aber zb. in der spalte 30 weiterschreiben, statt am anfang

so gesehn, hat windows die logischste variante gewählt (unix -> \n, mac -> \r)

@quintus: eh... nl2br() nimmt immer die lokalen einstellungen...

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Leider ist diese unglückliche Wahl bis heute ein permanentes Ärgernis.

Das kostet die Wirtschaft sicher viel mehr Geld als alle Viren zusammen :)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Ringding
Leider ist diese unglückliche Wahl bis heute ein permanentes Ärgernis.

Das kostet die Wirtschaft sicher viel mehr Geld als alle Viren zusammen :)
das kannst aber sicher nicht nur microsoft zuschreiben, die wollten sich halt alle voneinander distanzieren, is wie bei allen anderen programmen, wo die entwickler lieber ein langsameres und unübersichtlicheres dateiformat gewählt haben, nur um der konkurrenz das auslesen dieser zu erschweren...

Brother Quintus

(!) o_O :O ^_^
Avatar
Registered: Oct 2003
Location: Vienna, Austria
Posts: 657
wär aber super wenn die es verbessern würden ;9 dan nläuft bei größeren datenmengen sicher eetwas schneller...
Gordon

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
hehe da habt ihr wohl recht, von der schreibmaschine sind wir ja schon längst weg :)

achja, bei 95 / 98 / 2000 reicht ein "\n" nur bei friggin XP muss ich "\r\n" angeben ? :)

dank euch für die vielen antworten

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Nein, ist unter XP genauso wie unter allen bisherigen DOSen. Vielleicht wurde es einfach nur beim Kopieren auf das XP System umgewandelt, ohne dass du es bemerkt hast, sodass du jetzt Probleme am XP hast.

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
jo maybe ... wahrscheinlich :)

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
hmmmm warum macht der das nicht ? Er mecker die Variable an.

Code: PHP
$vor  = "$source_pfad = ereg_replace(\"\\n\", \"\", $source_pfad);";
$vor  = "$source_pfad = ereg_replace(\"\\r\\n\", \"\", $source_pfad);";

$zeile = ereg_replace("$vor", "$nac", $zeile);

wie kann ich das machen das er nicht versucht die Variablen in dem String auszugeben sondern die Variablennamen.

thx nochmal hehe :) und n8 ich guck morgen früh wieder rein !!!


edit: der "\" vor \n und \r\n ist doppelt, wird hier nur nicht angezeigt.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
also, ich werd' aus deinem code nicht ganz schlau - auf jeden fall is da ein echt grober fehler drin...
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz