Actually, it is very easy to send the client a file. But the client has to be willing to accept it. Depending on what your are using the file for, the client may be willing to accept it.
However, keep in mind, once on the client you will have to access it with something other than PHP (like JavaScript) as PHP is completely processed on the server side.
For 'state management' cookies and sessions are generally the best way to go. And I have never found cookies "unreliable". Generally, once you explain to your users that cookies are required (and why) they will allow cookies from your domain.