Sven Rautenberg: fgets Problem

Beitrag lesen

Moin!

Hoi fastnix

Glaskugel hin oder her - ich hätte den Code von anfang an posten müssen das stimmt - denn es liegt tatsächlich an der Syntax. Aber ganz wo anders:

$lfp = fopen("test.txt","r") || die ("Datei öffnen gescheitert!");

darf scheinbar nicht (mehr) sein.

"||" sollte man bei solchen Konstrukten vermeiden und stattdessen "or" verwenden. Denn diese unterschiedlichen Oder-Verknüpfungen machen unterschiedliche Dinge.

Siehe dazu auch:
http://de2.php.net/manual/de/function.fopen.php

Dort gibts eine Anmerkung:
slevy1 at pipeline.com
30-Dec-2001 01:54

Attn Perl Programmers:

If you are used to writing script like

do something || die("no can do");

note that in php || has a higher precedence than =

So, don't write:

$h = fopen("$filename", "r") || die("cannot open $filename");

b/c this will overwrite the file ptr!

Now, or has a lower precedence than || and is also lower than =

So, you may write:

$h = fopen("$filename","r") or die("cannot open $filename");

However, you may avoid the entire issue with code like this:

$h = fopen("$filename","r");
if (!$h) {
  die("unable to open $filename");
}

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|