php curl class
11.0.0
PHP Curl クラスを使用すると、HTTP リクエストの送信や Web API との統合が簡単になります。
インストール
要件
クイックスタートと例
利用可能な方法
安全
トラブルシューティング
テスト
貢献する
PHP Curl クラスをインストールするには、次のコマンドを実行します。
composer require php-curl-class/php-curl-class
最新のコミット バージョンをインストールするには:
composer require php-curl-class/php-curl-class @dev
composer
コマンドを使用するインストール手順は、https://github.com/composer/composer で参照できます。
PHP Curl クラスは、PHP 8.4、8.3、8.2、8.1、8.0、および 7.4 で動作します。
他の例は /examples にあります。
__DIR__ が必要です。 '/vendor/autoload.php';CurlCurl を使用;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'エラー: ' 。 $curl->errorMessage 。 "n";$curl->diagnose(); } else {echo '応答:' 。 "n";var_dump($curl->response); }
// https://www.example.com/search?q=keyword$curl = new Curl();$curl->get('https://www.example.com/search', ['q' = >「キーワード」、 ]);
$curl = new Curl();$curl->post('https://www.example.com/login/', ['username' => 'myusername','password' => 'mypassword', ]);
$curl = new Curl();$curl->setBasicAuthentication('ユーザー名', 'パスワード');$curl->setUserAgent('MyUserAgent/0.0.1 (+https://www.example.com/bot.html)');$curl->setReferrer('https://www.example.com/url?url=https%3A%2F%2Fwww.example. com%2F');$curl->setHeader('X-Requested-With', 'XMLHttpRequest');$curl->setCookie('key', 'value');$curl->get('https://www.example.com/');if ($curl->error) {echo 'エラー: ' . $curl->errorMessage 。 「ん」; } else {echo '応答:' 。 "n";var_dump($curl->response); }var_dump($curl->requestHeaders);var_dump($curl->responseHeaders);
$curl = new Curl();$curl->setFollowLocation();$curl->get('https://shortn.example.com/bHbVsP');
$curl = new Curl();$curl->put('https://api.example.com/user/', ['first_name' => 'ザック','last_name' => 'ボルボア', ]);
$curl = new Curl();$curl->patch('https://api.example.com/profile/', ['image' => '@path/to/file.jpg', ]);
$curl = new Curl();$curl->patch('https://api.example.com/profile/', ['image' => new CURLFile('path/to/file.jpg'), ]);
$curl = new Curl();$curl->delete('https://api.example.com/user/', ['id' => '1234', ]);
// サポートされているすべてのエンコーディング タイプを有効にし、ファイルをダウンロードします。$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .bin', '/tmp/myfile.bin');
// ヘッダーへの大文字と小文字を区別しないアクセス。$curl = new Curl();$curl->download('https://www.example.com/image.png', '/tmp/myimage.png');echo $curl->responseHeaders['Content-Type'] 。 「ん」; // image/pngecho $curl->responseHeaders['CoNTeNT-TyPE'] 。 「ん」; // 画像/png
// 手動クリーンアップ.$curl->close();
//curl へのアクセス例 object.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 5.1');curl_close($curl->curl);
__DIR__ が必要です。 '/vendor/autoload.php';use CurlMultiCurl;// コールバック関数と並行してリクエストします。$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url . '" は成功しました。' . "n";echo 'response:' 。 "n";var_dump($instance->response); });$multi_curl->error(function($instance) {echo '「' . $instance->url . '」への呼び出しは失敗しました。' . "n";echo 'エラー コード: ' . $instance->エラーコード . "n"; エコー ' エラーメッセージ: ' . $instance->errorMessage 。 });$multi_curl->complete(function($instance) {echo '呼び出し完了' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'hello world', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'hello world', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'hello world', ]);$multi_curl->start(); // キュー内のすべての項目が処理されるまでブロックします。
他の例は /examples にあります。
Curl::__construct($base_url = null, $options = []) Curl::__destruct() Curl::__get($name) Curl::afterSend($callback) Curl::attemptRetry() Curl::beforeSend($callback) Curl::buildPostData($data) Curl::call() カール::閉じる() Curl::complete($callback) Curl::delete($url, $query_parameters = [], $data = []) Curl::diagnose($return = false) Curl::disableTimeout() Curl::displayCurlOptionValue($option, $value = null) Curl::download($url, $mixed_filename) Curl::error($callback) Curl::exec($ch = null) Curl::execDone() Curl::fastDownload($url, $filename, $connections = 4) Curl::get($url, $data = []) Curl::getAttempts() Curl::getBeforeSendCallback() Curl::getCompleteCallback() Curl::getCookie($key) カール::getCurl() Curl::getCurlErrorCode() Curl::getCurlErrorMessage() Curl::getDownloadCompleteCallback() Curl::getDownloadFileName() Curl::getErrorCallback() Curl::getErrorCode() Curl::getErrorMessage() Curl::getFileHandle() Curl::getHttpErrorMessage() Curl::getHttpStatusCode() Curl::getId() Curl::getInfo($opt = null) Curl::getJsonDecoder() Curl::getOpt($option) Curl::getOptions() Curl::getRawResponse() Curl::getRawResponseHeaders() Curl::getRemainingRetries() Curl::getRequestHeaders() Curl::getResponse() Curl::getResponseCookie($key) Curl::getResponseCookies() Curl::getResponseHeaders() Curl::getRetries() Curl::getRetryDecider() Curl::getSuccessCallback() Curl::getUrl() Curl::getUserSetOptions() Curl::getXmlDecoder() Curl::head($url, $data = []) Curl::isChildOfMultiCurl() Curl::isCurlError() Curl::isError() Curl::isHttpError() Curl::options($url, $data = []) Curl::patch($url, $data = []) Curl::post($url, $data = '', $follow_303_with_post = false) Curl::progress($callback) Curl::put($url, $data = []) Curl::removeHeader($key) カール::リセット() Curl::search($url, $data = []) Curl::setAutoReferer($auto_referer = true) Curl::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($username, $password = '') Curl::setConnectTimeout($秒) Curl::setCookie($key, $value) Curl::setCookieFile($cookie_file) Curl::setCookieJar($cookie_jar) Curl::setCookieString($string) Curl::setCookies($cookies) Curl::setDefaultDecoder($mixed = 'json') Curl::setDefaultHeaderOut() Curl::setDefaultJsonDecoder() Curl::setDefaultTimeout() Curl::setDefaultUserAgent() Curl::setDefaultXmlDecoder() Curl::setDigestAuthentication($username, $password = '') Curl::setFile($file) Curl::setFollowLocation($follow_location = true) Curl::setForbidReuse($forbid_reuse = true) Curl::setHeader($key, $value) Curl::setHeaders($headers) Curl::setInterface($interface) Curl::setJsonDecoder($mixed) Curl::setMaxFilesize($bytes) Curl::setMinimumRedirects($maximum_redirects) Curl::setOpt($option, $value) Curl::setOpts($options) Curl::setPort($port) Curl::setProtocols($protocols) Curl::setProxy($proxy, $port = null, $username = null, $password = null) Curl::setProxyAuth($auth) Curl::setProxyTunnel($tunnel = true) Curl::setProxyType($type) Curl::setRange($range) Curl::setRedirectProtocols($redirect_protocols) Curl::setReferer($referer) Curl::setReferrer($referrer) Curl::setRetry($mixed) Curl::setStop($callback = null) Curl::setTimeout($秒) Curl::setUrl($url, $mixed_data = '') Curl::setUserAgent($user_agent) Curl::setXmlDecoder($mixed) カール::ストップ() Curl::success($callback) Curl::unsetHeader($key) Curl::unsetProxy() Curl::verbose($on = true, $output = 'STDERR') MultiCurl::__construct($base_url = null) MultiCurl::__destruct() MultiCurl::addCurl(Curl $curl) MultiCurl::addDelete($url, $query_parameters = [], $data = []) MultiCurl::addDownload($url, $mixed_filename) MultiCurl::addGet($url, $data = []) MultiCurl::addHead($url, $data = []) MultiCurl::addOptions($url, $data = []) MultiCurl::addPatch($url, $data = []) MultiCurl::addPost($url, $data = '', $follow_303_with_post = false) MultiCurl::addPut($url, $data = []) MultiCurl::addSearch($url, $data = []) MultiCurl::afterSend($callback) MultiCurl::beforeSend($callback) MultiCurl::close() MultiCurl::complete($callback) MultiCurl::disableTimeout() MultiCurl::error($callback) MultiCurl::getActiveCurls() MultiCurl::getOpt($option) MultiCurl::removeHeader($key) MultiCurl::setAutoReferer($auto_referer = true) MultiCurl::setAutoReferrer($auto_referrer = true) MultiCurl::setBasicAuthentication($username, $password = '') MultiCurl::setConcurrency($concurrency) MultiCurl::setConnectTimeout($秒) MultiCurl::setCookie($key, $value) MultiCurl::setCookieFile($cookie_file) MultiCurl::setCookieJar($cookie_jar) MultiCurl::setCookieString($string) MultiCurl::setCookies($cookies) MultiCurl::setDigestAuthentication($username, $password = '') MultiCurl::setFile($file) MultiCurl::setFollowLocation($follow_location = true) MultiCurl::setForbidReuse($forbid_reuse = true) MultiCurl::setHeader($key, $value) MultiCurl::setHeaders($headers) MultiCurl::setInterface($interface) MultiCurl::setJsonDecoder($mixed) MultiCurl::setMinimumRedirects($maximum_redirects) MultiCurl::setOpt($option, $value) MultiCurl::setOpts($options) MultiCurl::setPort($port) MultiCurl::setProxies($proxies) MultiCurl::setProxy($proxy, $port = null, $username = null, $password = null) MultiCurl::setProxyAuth($auth) MultiCurl::setProxyTunnel($tunnel = true) MultiCurl::setProxyType($type) MultiCurl::setRange($range) MultiCurl::setRateLimit($rate_limit) MultiCurl::setReferer($referer) MultiCurl::setReferrer($referrer) MultiCurl::setRequestTimeAccuracy() MultiCurl::setRetry($mixed) MultiCurl::setTimeout($秒) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($mixed) MultiCurl::start() MultiCurl::stop() MultiCurl::success($callback) MultiCurl::unsetHeader($key) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
セキュリティに関する考慮事項については、「セキュリティ」を参照してください。
トラブルシューティングのヘルプについては、「トラブルシューティング」を参照してください。
テスト情報については、「テスト」を参照してください。
未解決の問題を確認するか、新しい問題を開いてバグや機能に関するディスカッションを開始します。
GitHub 上のリポジトリをフォークして、変更を開始します。
新しい機能またはバグを明らかにするテストを 1 つ以上作成します。
コードを変更して機能を実装するか、バグを修正します。
プル リクエストを送信して、変更をマージして公開します。