Can anyone tell me why this part of my code is not functional? 
The code might be quite messy to look at, but I've commented wherever I can.

$gp = fopen("myFile.txt","r");            
while(($t = fgets($gp,1024)) && !feof($gp)) { 
  if ($t[0] == '=' && $t[1] == 'D') {           \\Looks for =D in myFile.txt 
   $entryDate[] = fgets($gp,30);                   \\then takes next line and 
  } elseif ($t[0] == '=' && $t[1] == 'A') {        \\puts it into $entryDate[]  
   $entryAuth[] = fgets($gp,50); 
  } elseif ($t[0] == '=' && $t[1] == 'C') {     \\With a =C in myFile.txt
   $readAll = fread($gp,1024);                     \\it reads 1024 characters &
   $readAll = str_replace("                        \\replaces all newlines   
", "<BR CLEAR=ALL>", $readAll);                    \\ with a HTML tag.
   $endPoint = strpos($readAll,"^end");         \\Detects the position of ^end
   $readTil = $endPoint - 1;                       \\ and outputs $readTil
   $entryCont[] = substr($readAll,0,$readTil);     \\ content to this point
  } else {
   /*  Nothing to be done, go back to beginning of while */ 

The problem is that it doesn't actually go back to the beginning of the while 
loop. I've checked the array counts for the $entryDate[] array and it always 
tells me that I have only 1 entry, even though myFile.txt has 2 or more entries.
So it doesn't seem to go anywhere. When I replace the part after checking for 
=C with a simple fgets (like the other 'if' parts of the code), it works 
perfectly. Something in the functions after the if( .... =C) is stopping the 
while loop and I don't know what it is! 
Note: It does execute all the functions after the if(... =C), because the 
$entryCont[] array contains all the formatted/substituted text.

Please help?


This mail sent through IMP:

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to