Por lo pronto, podés usar
file_get_contents en vez de
para obtener el archivo como string y ahorrarte el paso del join.
Después, deberás comprobar que el directorio en el que deseás hacer la modificación tiene permisos de escritura (0777).
Fijate de poner al comienzo de tu script
para que te muestre siempre todos los errores. Puede que tu host los tenga ocultos por defecto en el php.ini.
Espero haber dado un poco de luz en el asunto.
Saludos,
Pablo