Opening a file in "r+" mode, and then trying to set the file pointer position with ftruncate before reading the file will result in file data loss, as though you opened the file in "w" mode.
EX:
$File = fopen($FilePath,"r+"); // OPEN FILE IN READ-WRITE
ftruncate($File, 0); // SET POINTER POSITION (Will Erase Data)
while(! feof($File)) { // CONTINUE UNTIL END OF FILE IS REACHED
$Line = fgets($File); // GET A LINE FROM THE FILE INTO STRING
$Line = trim($Line); // TRIM STRING OF NEW LINE
}
ftruncate($File,0); // (Will Not Erase Data)
fclose($File);