as a solution for your first problem;
use fsockopen, send headers
GET HEAD /dir/file.bla http/1.0
host www.blabla.com
enter
enter
and receive the header, then use the http header to check the response,
if it says HTTP 200 OK (or whatever, i cant, and dont need nor do i want to remember all the correct form of the stuff that is sent and received, look it up)
.. then the file exists...
for your second prob, i dont think there's a way of getting the filelist from http, that's, like, against the very foundation of http - dude.. if you don't know the filename, then you shouldn't need the file..