nst

02-13-2006, 05:55 PM

<?php

$file_name = "test2.txt";

if(!($fp = fopen("./$file_name", "r")))

die ("File does not exist.");

for ($k=0; $k<30; $k++) {

$i++;

while($one_char!="\n") {

$one_char = fgetc($fp);

$str = $str.$one_char;

}

echo $i.": ".$str."<BR>";

$str = "";

$one_char = "";

//if(!feof($fp)) break;

}

fclose($fp);

?>

test2.txt is

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

So as it stands I get

1: A1 A2 A3

2: B1 B2 B3

3: C1 C2 C3

4: A1 A2 A3

5: B1 B2 B3

6: C1 C2 C3

7: A1 A2 A3

8: B1 B2 B3

9: C1 C2 C3

10: A1 A2 A3

11: B1 B2 B3

12: C1 C2 C3

13: A1 A2 A3

14: B1 B2 B3

15: C1 C2 C3

16: A1 A2 A3

17: B1 B2 B3

18: C1 C2 C3

19: A1 A2 A3

20: B1 B2 B3

21: C1 C2 C3

22: A1 A2 A3

23: B1 B2 B3

24: C1 C2 C3

25: A1 A2 A3

26: B1 B2 B3

27: C1 C2 C3

28: A1 A2 A3

29: B1 B2 B3

30: C1 C2 C3

but, if I uncomment the following line

if(!feof($fp)) break;

I only get

1: A1 A2 A3

I suppose that it breaks after the 1st loop, when $i is 1. Why does it do that?

I run it on WinXP, Apache2 and Php 4.3.11

Any idea?

Thanks!

$file_name = "test2.txt";

if(!($fp = fopen("./$file_name", "r")))

die ("File does not exist.");

for ($k=0; $k<30; $k++) {

$i++;

while($one_char!="\n") {

$one_char = fgetc($fp);

$str = $str.$one_char;

}

echo $i.": ".$str."<BR>";

$str = "";

$one_char = "";

//if(!feof($fp)) break;

}

fclose($fp);

?>

test2.txt is

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

A1 A2 A3

B1 B2 B3

C1 C2 C3

So as it stands I get

1: A1 A2 A3

2: B1 B2 B3

3: C1 C2 C3

4: A1 A2 A3

5: B1 B2 B3

6: C1 C2 C3

7: A1 A2 A3

8: B1 B2 B3

9: C1 C2 C3

10: A1 A2 A3

11: B1 B2 B3

12: C1 C2 C3

13: A1 A2 A3

14: B1 B2 B3

15: C1 C2 C3

16: A1 A2 A3

17: B1 B2 B3

18: C1 C2 C3

19: A1 A2 A3

20: B1 B2 B3

21: C1 C2 C3

22: A1 A2 A3

23: B1 B2 B3

24: C1 C2 C3

25: A1 A2 A3

26: B1 B2 B3

27: C1 C2 C3

28: A1 A2 A3

29: B1 B2 B3

30: C1 C2 C3

but, if I uncomment the following line

if(!feof($fp)) break;

I only get

1: A1 A2 A3

I suppose that it breaks after the 1st loop, when $i is 1. Why does it do that?

I run it on WinXP, Apache2 and Php 4.3.11

Any idea?

Thanks!