PEAR Manual
Prev |  | Next

# PEAR_Common::downloadHttp()

PEAR_Common::downloadHttp() -- Download a file through HTTP

## Synopsis

    require_once 'PEAR/common.php';

``string PEAR_Common::downloadHttp` (string $url, object &$ui [, string $save_dir = '.' [, mixed $callback = `NULL`]])`

## Description

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().

## Throws

Table 27-1. Possible PEAR_Error values

Error code | Error value | Meaning | Solution
--- | --- | --- | ---
| "" |  |

## Note

This function can not be called statically.

Prev | Home | Next
PEAR_Common::buildProvidesArray() | Up | PEAR_Common::infoFromAny()