Que?
Tu sabes que cada formato de los que mencionas tiene su própia "codificación" por decirlo de alguna forma simple. Incluso un "txt" es el formato más "libre" para darle el formato que tu quieras a la estructura de datos que deseas crear.
Hablado de "fopen()" en sí .. cuando haces un fopen() si leistes la documentación ahí según el modo en que abras el documento ese será el nombre del archivo que le daras al cerrarlo y crearlo definitivamente.
Pero .. si quieres generar un ".doc" (de MS Word) .. este tiene su própio formato propietario (yo no lo conozco . .y no es "texto plano" simple de indentificar) .. para eso se usa "RTF" (Ritch Text Format) que es mas "legible" como para generarlo. Los PDF's tienen su formato (pero es público .. así que hay implementaciones en PHP ya hechas como FPDF y otras classes que te ayudaran). Los ".xls" de Excel en principio con una estructura de tabla HTML que hagas ya le creas las "filas" y "celdas" de la planilla/hoja de cálculo .. y así con todo "fomato" de archivo que quieras generar.
Los formatos propietarios de "M$$" (Word, Excel, etc) los puedes gestionar vía COM (pero involucra tener un servidor bajo windows y el "Office" instalado en el servidor):
www.php.net/com
Un saludo,