Pero .. "que trozo" de ese "txt" o bajo que condiciones mejor dicho ha de mostrar información .. o hasta donde ha de mostar información de ese "txt"?
Por el código que usas .. suponemos que la estructura de tus datos es algo así:
campo0|campo1|campo3|campo3 <-- registro 1
campo0|campo1|campo3|campo3 <-- registro 2
campo0|campo1|campo3|campo3 <-- registro N
(esto es lo que deberías haber dicho: tengo tal estructura de datos y quiero acceder a Tal dato bajo tal condición ..)
Ahora .. supongo que quieres accede a X registro .. ¿no?, pero eso será bajo alguna condición: no sé .. tal vez que "campo1 == $nose" .. ?¿ es eso?
En tal caso .. la función fgets() o fgetcsvs() te podrán servir ..
Visita la documentación oficial de esas funciones ..
http://www.php.net/manual/en/function.fgetcsv.php
Ejemplos tienes ahí ...
Y sobre todo piensa .. que tu "txt" una vez leido por PHP te queda en un array .. así que como tal array que es (tu $mensaje) puedes trabajarlo como quieras conlas funciones de Arrays de PHP o bien recorriendolo entero (con un bucle como de hecho ya lo estás haciendo) y usando tus "condicionales" (IF ... else ...) para presentar el dato que cumpla tu condición ...
Un saludo,