Эта функция должна переместить курсор вашего потока в нужное место:
function moveStreamCursorTo(&$fp, $offset)
{
for ($i = 0; $i < $offset; $i++)
fgetc($fp);
}
// Use like this:
$curPos = 459;
$desiredPos = 1345;
moveStreamCursorTo($yourStream, $desiredPos - $curPos);
Пожалуйста, проверьте это и сообщите свои результаты.