Sei sicuro che non hai dimenticato niente in quello che hai postato?
Per esempio: da dove salta fuori $fd nel fread()?
Perché fare un explode per poi fare un implode subito dopo?