PHP 클래스 Piwik\Http

Used to check for the latest Piwik version and download updates.
파일 보기 프로젝트 열기: piwik/piwik 1 사용 예제들

공개 메소드들

메소드 설명
configCurlCertificate ( &$ch ) Will configure CURL handle $ch to use local list of Certificate Authorities,
downloadChunk ( string $url, string $outputPath, boolean $isContinuation ) : array Downloads the next chunk of a specific file. The next chunk's byte range is determined by the existing file's size and the expected file size, which is stored in the piwik_option table before starting a download. The expected file size is obtained through a HEAD HTTP request.
ensureDestinationDirectoryExists ( $destinationPath )
fetchRemoteFile ( string $url, string $destinationPath = null, integer $tries, integer $timeout = 10 ) : boolean Fetches a file located at $url and saves it to $destinationPath.
getModifiedSinceHeader ( ) : string Returns the If-Modified-Since HTTP header if it can be found. If it cannot be found, an empty string is returned.
getTransportMethod ( ) : string | null Returns the "best" available transport method for {@link sendHttpRequest()} calls.
getUserAgent ( )
sendHttpRequest ( string $aUrl, integer $timeout, string | null $userAgent = null, string | null $destinationPath = null, integer | null $followDepth, boolean $acceptLanguage = false, array | boolean $byteRange = false, boolean $getExtendedInfo = false, string $httpMethod = 'GET', string $httpUsername = null, string $httpPassword = null ) : boolean | string Sends an HTTP request using best available transport method.
sendHttpRequestBy ( string $method = 'socket', string $aUrl, integer $timeout, string $userAgent = null, string $destinationPath = null, resource $file = null, integer $followDepth, boolean | string $acceptLanguage = false, boolean $acceptInvalidSslCertificate = false, array | boolean $byteRange = false, boolean $getExtendedInfo = false, string $httpMethod = 'GET', string $httpUsername = null, string $httpPassword = null, array | string $requestBody = null ) : boolean Sends an HTTP request using the specified transport method.

보호된 메소드들

메소드 설명
isCurlEnabled ( )
isSocketEnabled ( )

비공개 메소드들

메소드 설명
buildHeadersForPost ( $requestBody )
getProxyConfiguration ( string $url ) : array Returns Proxy to use for connecting via HTTP to given URL
parseHeaderLine ( array &$headers, string $line ) Utility function, parses an HTTP header line into key/value & sets header array with them.
truncateStr ( string $str, integer $limit ) : string Utility function that truncates a string to an arbitrary limit.

메소드 상세

configCurlCertificate() 공개 정적인 메소드

Will configure CURL handle $ch to use local list of Certificate Authorities,
public static configCurlCertificate ( &$ch )

downloadChunk() 공개 정적인 메소드

_Note: this function uses the **Range** HTTP header to accomplish downloading in parts. Not every server supports this header._ The proper use of this function is to call it once per request. The browser should continue to send requests to Piwik which will in turn call this method until the file has completely downloaded. In this way, the user can be informed of a download's progress. **Example Usage** browser JavaScript var downloadFile = function (isStart) { var ajax = new ajaxHelper(); ajax.addParams({ module: 'MyPlugin', action: 'myAction', isStart: isStart ? 1 : 0 }, 'post'); ajax.setCallback(function (response) { var progress = response.progress ...update progress... downloadFile(false); }); ajax.send(); } downloadFile(true); PHP controller action public function myAction() { $outputPath = PIWIK_INCLUDE_PATH . '/tmp/averybigfile.zip'; $isStart = Common::getRequestVar('isStart', 1, 'int'); Http::downloadChunk("http://bigfiles.com/averybigfile.zip", $outputPath, $isStart == 1); }
public static downloadChunk ( string $url, string $outputPath, boolean $isContinuation ) : array
$url string The url to download from.
$outputPath string The path to the file to save/append to.
$isContinuation boolean `true` if this is the continuation of a download, or if we're starting a fresh one.
리턴 array

ensureDestinationDirectoryExists() 공개 정적인 메소드

public static ensureDestinationDirectoryExists ( $destinationPath )

fetchRemoteFile() 공개 정적인 메소드

Fetches a file located at $url and saves it to $destinationPath.
public static fetchRemoteFile ( string $url, string $destinationPath = null, integer $tries, integer $timeout = 10 ) : boolean
$url string The URL of the file to download.
$destinationPath string The path to download the file to.
$tries integer (deprecated)
$timeout integer The amount of seconds to wait before aborting the HTTP request.
리턴 boolean `true` on success, throws Exception on failure

getModifiedSinceHeader() 공개 정적인 메소드

Returns the If-Modified-Since HTTP header if it can be found. If it cannot be found, an empty string is returned.
public static getModifiedSinceHeader ( ) : string
리턴 string

getTransportMethod() 공개 정적인 메소드

Returns the "best" available transport method for {@link sendHttpRequest()} calls.
public static getTransportMethod ( ) : string | null
리턴 string | null Either curl, fopen, socket or null if no method is supported.

getUserAgent() 공개 정적인 메소드

public static getUserAgent ( )

isCurlEnabled() 보호된 정적인 메소드

protected static isCurlEnabled ( )

isSocketEnabled() 보호된 정적인 메소드

protected static isSocketEnabled ( )

sendHttpRequest() 공개 정적인 메소드

Sends an HTTP request using best available transport method.
public static sendHttpRequest ( string $aUrl, integer $timeout, string | null $userAgent = null, string | null $destinationPath = null, integer | null $followDepth, boolean $acceptLanguage = false, array | boolean $byteRange = false, boolean $getExtendedInfo = false, string $httpMethod = 'GET', string $httpUsername = null, string $httpPassword = null ) : boolean | string
$aUrl string The target URL.
$timeout integer The number of seconds to wait before aborting the HTTP request.
$userAgent string | null The user agent to use.
$destinationPath string | null If supplied, the HTTP response will be saved to the file specified by this path.
$followDepth integer | null Internal redirect count. Should always pass `null` for this parameter.
$acceptLanguage boolean The value to use for the `'Accept-Language'` HTTP request header.
$byteRange array | boolean For `Range:` header. Should be two element array of bytes, eg, `array(0, 1024)` Doesn't work w/ `fopen` transport method.
$getExtendedInfo boolean If true returns the status code, headers & response, if false just the response.
$httpMethod string The HTTP method to use. Defaults to `'GET'`.
$httpUsername string HTTP Auth username
$httpPassword string HTTP Auth password
리턴 boolean | string If `$destinationPath` is not specified the HTTP response is returned on success. `false` is returned on failure. If `$getExtendedInfo` is `true` and `$destinationPath` is not specified an array with the following information is returned on success: - **status**: the HTTP status code - **headers**: the HTTP headers - **data**: the HTTP response data `false` is still returned on failure.

sendHttpRequestBy() 공개 정적인 메소드

Sends an HTTP request using the specified transport method.
public static sendHttpRequestBy ( string $method = 'socket', string $aUrl, integer $timeout, string $userAgent = null, string $destinationPath = null, resource $file = null, integer $followDepth, boolean | string $acceptLanguage = false, boolean $acceptInvalidSslCertificate = false, array | boolean $byteRange = false, boolean $getExtendedInfo = false, string $httpMethod = 'GET', string $httpUsername = null, string $httpPassword = null, array | string $requestBody = null ) : boolean
$method string
$aUrl string
$timeout integer in seconds
$userAgent string
$destinationPath string
$file resource
$followDepth integer
$acceptLanguage boolean | string Accept-language header
$acceptInvalidSslCertificate boolean Only used with $method == 'curl'. If set to true (NOT recommended!) the SSL certificate will not be checked
$byteRange array | boolean For Range: header. Should be two element array of bytes, eg, array(0, 1024) Doesn't work w/ fopen method.
$getExtendedInfo boolean True to return status code, headers & response, false if just response.
$httpMethod string The HTTP method to use. Defaults to `'GET'`.
$httpUsername string HTTP Auth username
$httpPassword string HTTP Auth password
$requestBody array | string If $httpMethod is 'POST' this may accept an array of variables or a string that needs to be posted
리턴 boolean true (or string/array) on success; false on HTTP response error code (1xx or 4xx)