Lo normal en estos casos es que definas la estructura de tu "BD txt" tipo:
campo [separador] campo2 [separador] campoN [salto de línea]<-- registro1
campo [separador] campo2 [separador] campoN [salto de línea]<-- registro2
campo [separador] campo2 [separador] campoN [salto de línea]<-- registroN
Como separador puedes usar el caracter | que se usa mucho .. y como salto de línea el \r o \n o \r\n (según S.O.)
Quedando por ejemplo tipo
campo1|campo2|campoN <-- registro1
campo1|campo2|campoN
campo1|campo2|campoN <-- registro N
Ese tipo de estructuras lo puedes crear junto con el archivo con las funciones fopen() .. fwrite() y afines concatenando tus $variables con el "|" como separador que vas a usar y su "\n" o lo que uses como separador.
Luego puedes leer ese tipo de estructura con funciones como fgetcsv() o file() + explode()
Al usar "archivos de texto plano" .. las "busquedas" sobre esos archivos se complican tambien "ordenar" los resultados y demás .. pero, trabajando todo como arrays y sus funciones adecuadas puedes trabajar bien con archivos de texto plano ...
Por otro lado .. tienes ya implementados "classes" para trabajar con archivos de texto plano .. ya sea en formatos standars como XML, CSV, o própios (como el que te comenté).
Por ejemplo .. para CSV:
http://promoxy.mirrors.phpclasses.or...kage/1358.html
Un saludo,