Download a file through HTTP. Considers suggested file name in Content-disposition: header and can run a callback function for different events. The callback will be called with two parameters: the callback type, and parameters. The implemented callback types are:
'setup' - called at the very beginning, parameter is a UI object that should be used for all output
'message' - the parameter is a string with an informational message
'saveas' - may be used to save with a different file name, the parameter is the filename that is about to be used. If a 'saveas' callback returns a non-empty string, that file name will be used as the filename instead. Note that $save_dir will not be affected by this, only the basename of the file.
'start' - download is starting, parameter is number of bytes that are expected, or -1 if unknown
'bytesread' - parameter is the number of bytes read so far
'done' - download is complete, parameter is the total number of bytes read
'connfailed' - if the TCP connection fails, this callback is called with
array(host,port,errno,errmsg)
'writefailed' - if writing to disk fails, this callback is called with
array(destfile,errmsg)
If an HTTP proxy has been configured (http_proxy PEAR_Config setting), the proxy will be used.
Parameter
string $url
the URL to download
object &$ui
PEAR_Frontend_* instance
string $save_dir
directory to save file in
mixed $callback
function/method to call for status updates
object $config
PEAR_Config instance
Return value
string - Returns the full path of the downloaded file or a PEAR error on failure. If the error is caused by socket-related errors, the error object will have the fsockopen error code available through getCode().
Deliver First Class Web Sites: 101 Essential Checklists Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?