piedweb/curl

curl OOP 包装器


README

Latest Version Software License GitHub Tests Action Status Quality Score Code Coverage Type Coverage Total Downloads

简单的 PHP Curl OOP 包装器,用于高效请求。

对于更复杂或抽象的 curl 包装器,请使用 Guzzle

安装

通过 Packagist

$ composer require piedweb/curl

用法

快速示例

$url = 'https://piedweb.com';
$request = new \PiedWeb\Curl\ExtendedCliend($url);
$request
    ->setDefaultSpeedOptions(true)
    ->setDownloadOnlyIf('PiedWeb\Curl\Helper::checkContentType') // 'PiedWeb\Curl\Helper::checkStatusCode'
    ->setDesktopUserAgent()
;
$result = $request->request();
if ($result instanceof \PiedWeb\Curl\Response) {
    $content = $this->getContent();
}

静态包装方法

use PiedWeb\Curl\StaticClient as Client;

Client::request($url); // @return ?string
Client::get(); // @return PiedWeb\Curl\ExtendedClient
Client::reset()

所有其他方法

$r = new PiedWeb\Curl\ExtendedClient(?string $url);
$r
    ->setOpt(CURLOPT_*, mixed 'value')

	// Preselect Options to avoid eternity wait
    ->setDefaultGetOptions($connectTimeOut = 5, $timeOut = 10, $dnsCacheTimeOut = 600, $followLocation = true, $maxRedirs = 5)
    ->setDefaultSpeedOptions() // no header except if setted, 1 redir max, no ssl check
    ->setNoFollowRedirection()
    ->setReturnOnlyHeader()
    ->setCookie(string $cookie)
    ->setReferer(string $url)
    ->fakeBrowserHeader(bool $doIt = true)
    ->setUserAgent(string $ua)
    ->setDesktopUserAgent()
    ->setMobileUserAgent()
    ->setLessJsUserAgent()
        ->getUserAgent() // @return string

    ->setDownloadOnlyIf(callable $func) // @param $ContentType can be a String or an Array
    ->setMaximumResponseSize(int $tooBig = 200000) // @defaut 2Mo
    ->setDownloadOnly($range = '0-500')

    ->setPost(array $post)

    ->setEncodingGzip()

    ->setProxy(string '[scheme]proxy-host:port[:username:passwrd]') // Scheme, username and passwrd are facultatives. Default Scheme is http://

    ->setTarget($url)
        ->getTarget()

    $r->request(); // @return true if request succeed else false (see getError)

$response = $r->getResponse(); // @return PiedWeb\Curl\Response or int corresponding to the curl error

$response->getUrl(); // @return string
$response->getContentType(); // @return string
$response->getContent(); // @return string
$response->getHeaders($returnArray = true); // @return array Response Header (or in a string if $returnArray is set to false)
$response->getCookies(); // @return string
$response->getUrl(); // @return string

$response->getError(); // Equivalent to curl function curl_errno
$response->getErrorMessage(); // .. curl_error


use PiedWeb\Curl\ResponseFromCache;

$response = new ResponseFromCache(  // same methods than Response except getRequest return null
    string $filePathOrContent,
    ?string $url = null,
    array $info = [],
    $headers = PHP_EOL.PHP_EOL
);

贡献

请参阅 贡献指南

鸣谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。

Open Source Package