BIG PHP Problem

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/big_php_problem_96654/page_1 - zur Vollversion wechseln!


bBU.CyTrobIc schrieb am 24.10.2003 um 19:12

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 schrieb am 24.10.2003 um 19:36

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 schrieb am 24.10.2003 um 19:43

Jo es is der \r\n ! Danke !

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


Sticker schrieb am 24.10.2003 um 20:12

\r = Return


Ringding schrieb am 24.10.2003 um 20:51

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 schrieb am 24.10.2003 um 20:57

geht ned nl2br()? is viel simpler...


watchout schrieb am 24.10.2003 um 21:07

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 schrieb am 24.10.2003 um 21:14

Leider ist diese unglückliche Wahl bis heute ein permanentes Ärgernis.

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


watchout schrieb am 24.10.2003 um 21:32

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 schrieb am 24.10.2003 um 21:42

wär aber super wenn die es verbessern würden ;9 dan nläuft bei größeren datenmengen sicher eetwas schneller...
Gordon


bBU.CyTrobIc schrieb am 24.10.2003 um 21:51

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 schrieb am 24.10.2003 um 21:58

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 schrieb am 24.10.2003 um 22:23

jo maybe ... wahrscheinlich :)


bBU.CyTrobIc schrieb am 25.10.2003 um 00:43

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 schrieb am 25.10.2003 um 01:47

also, ich werd' aus deinem code nicht ganz schlau - auf jeden fall is da ein echt grober fehler drin...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025