PHP Curl Class memudahkan pengiriman permintaan HTTP dan berintegrasi dengan API web.
Instalasi
Persyaratan
Mulai Cepat dan Contoh
Metode yang Tersedia
Keamanan
Pemecahan masalah
Pengujian
Berkontribusi
Untuk menginstal PHP Curl Class, jalankan perintah berikut:
composer require php-curl-class/php-curl-class
Untuk menginstal versi komit terbaru:
composer require php-curl-class/php-curl-class @dev
Petunjuk instalasi untuk menggunakan perintah composer
dapat ditemukan di https://github.com/composer/composer.
Kelas PHP Curl bekerja dengan PHP 8.4, 8.3, 8.2, 8.1, 8.0, dan 7.4.
Contoh lainnya tersedia di /examples.
membutuhkan __DIR__ . '/vendor/autoload.php';gunakan CurlCurl;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'Kesalahan: ' . $curl->Pesan kesalahan. "n";$curl->diagnosis(); } else {echo 'Respon:' . "n";var_dump($curl->respons); }
// https://www.example.com/search?q=keyword$curl = new Curl();$curl->get('https://www.example.com/search', ['q' = > 'kata kunci', ]);
$curl = new Curl();$curl->post('https://www.example.com/login/', ['nama pengguna' => 'nama pengguna saya','kata sandi' => 'kata sandi saya', ]);
$curl = new Curl();$curl->setBasicAuthentication('nama pengguna', 'kata sandi');$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-Diminta-Dengan', 'XMLHttpRequest');$curl->setCookie('kunci', 'value');$curl->get('https://www.example.com/');if ($curl->error) {echo 'Error: ' . $curl->Pesan kesalahan. "N"; } else {echo 'Respon:' . "n";var_dump($curl->respons); }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' => 'Zach','last_name' => 'Borboa', ]);
$curl = new Curl();$curl->patch('https://api.example.com/profile/', ['image' => '@path/to/file.jpg', ]);
$curl = Curl baru();$curl->patch('https://api.example.com/profile/', ['gambar' => CURLFile baru('path/to/file.jpg'), ]);
$curl = new Curl();$curl->delete('https://api.example.com/user/', ['id' => '1234', ]);
// Aktifkan semua jenis pengkodean yang didukung dan unduh file.$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .bin', '/tmp/myfile.bin');
// Akses tidak peka huruf besar-kecil ke header.$curl = new Curl();$curl->download('https://www.example.com/image.png', '/tmp/myimage.png');echo $curl->responseHeaders['Jenis Konten'] . "N"; // gambar/pngecho $curl->responseHeaders['CoNTeNT-TyPE'] . "N"; // gambar/png
// Pembersihan manual.$curl->close();
// Contoh akses ke objek curl.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (kompatibel; MSIE 7.0; Windows NT 5.1');curl_close($curl->curl);
membutuhkan __DIR__ . '/vendor/autoload.php';gunakan CurlMultiCurl;// Permintaan secara paralel dengan fungsi panggilan balik.$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url . '"berhasil.' . "n";echo 'respons:' . "n";var_dump($instance->respons); });$multi_curl->error(function($instance) {echo 'panggilan ke "' . $instance->url . '" tidak berhasil.' . "n";echo 'kode kesalahan: ' . $instance-> kode kesalahan . });$multi_curl->complete(function($instance) {echo 'panggilan selesai' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'halo dunia', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'halo dunia', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'halo dunia', ]);$multi_curl->mulai(); // Memblokir hingga semua item dalam antrian telah diproses.
Contoh lainnya tersedia di /examples.
Curl::__construct($base_url = null, $options = []) Keriting::__destruct() Keriting::__dapatkan($nama) Keriting::afterSend($panggilan balik) Keriting::mencobacoba lagi() Curl::sebelumKirim($panggilan balik) Keriting::buildPostData($data) Keriting::panggilan() Keriting::tutup() Keriting::selesai($panggilan balik) Curl::hapus($url, $query_parameters = [], $data = []) Curl::diagnosis($return = false) Keriting::disableTimeout() Curl::displayCurlOptionValue($pilihan, $nilai = null) Keriting::unduh($url, $nama_filecampuran) Keriting::kesalahan($panggilan balik) Keriting::exec($ch = nol) Keriting::execDone() Curl::fastDownload($url, $namafile, $koneksi = 4) Keriting::dapatkan($url, $data = []) Keriting::getAttempts() Keriting::getBeforeSendCallback() Keriting::getCompleteCallback() Keriting::getCookie($kunci) Keriting::getCurl() Keriting::getCurlErrorCode() Keriting::getCurlErrorMessage() Keriting::getDownloadCompleteCallback() Keriting::getDownloadFileName() Keriting::getErrorCallback() Keriting::getErrorCode() Keriting::getErrorMessage() Keriting::getFileHandle() Keriting::getHttpErrorMessage() Keriting::getHttpStatusCode() Keriting::getId() Keriting::getInfo($opt = nol) Keriting::getJsonDecoder() Keriting::getOpt($opsi) Keriting::getOptions() Keriting::getRawResponse() Keriting::getRawResponseHeaders() Keriting::getRemainingRetries() Keriting::getRequestHeaders() Keriting::getResponse() Curl::getResponseCookie($kunci) Keriting::getResponseCookies() Keriting::getResponseHeaders() Keriting::getRetries() Keriting::getRetryDecider() Keriting::getSuccessCallback() Keriting::getUrl() Keriting::getUserSetOptions() Keriting::getXmlDecoder() Keriting::kepala($url, $data = []) Keriting::isChildOfMultiCurl() Keriting::isCurlError() Keriting::isError() Keriting::isHttpError() Keriting::pilihan($url, $data = []) Keriting::tambalan($url, $data = []) Curl::post($url, $data = '', $follow_303_with_post = salah) Keriting::kemajuan($panggilan balik) Keriting::put($url, $data = []) Keriting::hapusHeader($kunci) Keriting::setel ulang() Keriting::pencarian($url, $data = []) Curl::setAutoReferer($auto_referer = benar) Curl::setAutoReferrer($auto_referrer = benar) Curl::setBasicAuthentication($nama pengguna, $kata sandi = '') Keriting::setConnectTimeout($detik) Curl::setCookie($kunci, $nilai) Keriting::setCookieFile($cookie_file) Keriting::setCookieJar($cookie_jar) Keriting::setCookieString($string) Keriting::setCookies($cookies) Keriting::setDefaultDecoder($campuran = 'json') Keriting::setDefaultHeaderOut() Keriting::setDefaultJsonDecoder() Keriting::setDefaultTimeout() Keriting::setDefaultUserAgent() Keriting::setDefaultXmlDecoder() Curl::setDigestAuthentication($nama pengguna, $kata sandi = '') Keriting::setFile($file) Curl::setFollowLocation($follow_location = benar) Curl::setForbidReuse($forbid_reuse = benar) Curl::setHeader($kunci, $nilai) Keriting::setHeaders($header) Keriting::setInterface($antarmuka) Keriting::setJsonDecoder($campuran) Keriting::setMaxFilesize($byte) Keriting::setMaximumRedirects($maximum_redirects) Keriting::setOpt($pilihan, $nilai) Keriting::setOpts($opsi) Keriting::setPort($port) Keriting::setProtocols($protokol) Curl::setProxy($proxy, $port = null, $nama pengguna = null, $password = null) Keriting::setProxyAuth($auth) Curl::setProxyTunnel($tunnel = benar) Keriting::setProxyType($type) Keriting::setRange($range) Keriting::setRedirectProtocols($redirect_protocols) Keriting::setReferer($referer) Keriting::setReferrer($referrer) Keriting::setRetry($campuran) Keriting::setStop($panggilan balik = nol) Keriting::setTimeout($detik) Keriting::setUrl($url, $data_campuran = '') Keriting::setUserAgent($user_agent) Keriting::setXmlDecoder($campuran) Keriting::berhenti() Keriting::sukses($panggilan balik) Keriting::unsetHeader($kunci) Keriting::unsetProxy() Curl::verbose($on = benar, $output = 'STDERR') MultiCurl::__construct($base_url = nol) Multiikal::__destruct() MultiIkal::addCurl(Ikal $ikal) MultiCurl::addDelete($url, $query_parameters = [], $data = []) MultiCurl::addDownload($url, $nama_file_campuran) MultiCurl::addGet($url, $data = []) MultiIkal::addHead($url, $data = []) MultiCurl::addOptions($url, $data = []) MultiCurl::addPatch($url, $data = []) MultiCurl::addPost($url, $data = '', $follow_303_with_post = salah) MultiCurl::addPut($url, $data = []) MultiCurl::addSearch($url, $data = []) MultiCurl::afterSend($panggilan balik) MultiCurl::sebelumKirim($panggilan balik) MultiIkal::tutup() MultiCurl::selesai($panggilan balik) MultiCurl::disableTimeout() MultiCurl::kesalahan($panggilan balik) Multiikal::getActiveCurls() MultiCurl::getOpt($opsi) MultiCurl::removeHeader($kunci) MultiCurl::setAutoReferer($auto_referer = benar) MultiCurl::setAutoReferrer($auto_referrer = benar) MultiCurl::setBasicAuthentication($nama pengguna, $kata sandi = '') MultiCurl::setConcurrency($konkurensi) MultiCurl::setConnectTimeout($detik) MultiCurl::setCookie($kunci, $nilai) MultiCurl::setCookieFile($cookie_file) MultiIkal::setCookieJar($cookie_jar) MultiIkal::setCookieString($string) MultiCurl::setCookies($cookies) MultiCurl::setDigestAuthentication($nama pengguna, $kata sandi = '') MultiIkal::setFile($file) MultiCurl::setFollowLocation($follow_location = benar) MultiCurl::setForbidReuse($forbid_reuse = benar) MultiCurl::setHeader($kunci, $nilai) MultiCurl::setHeaders($header) MultiCurl::setInterface($antarmuka) MultiCurl::setJsonDecoder($campuran) MultiCurl::setMaximumRedirects($maximum_redirects) MultiCurl::setOpt($pilihan, $nilai) MultiIkal::setOpts($pilihan) MultiIkal::setPort($port) MultiCurl::setProxies($proxy) MultiCurl::setProxy($proxy, $port = null, $nama pengguna = null, $password = null) MultiCurl::setProxyAuth($auth) MultiCurl::setProxyTunnel($tunnel = benar) MultiIkal::setProxyType($type) MultiCurl::setRange($rentang) MultiCurl::setRateLimit($rate_limit) MultiCurl::setReferer($referer) MultiCurl::setReferrer($referrer) MultiCurl::setRequestTimeAccuracy() MultiCurl::setRetry($campuran) MultiCurl::setTimeout($detik) MultiIkal::setUrl($url, $data_campuran = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($campuran) Multiikal::mulai() Multiikal::berhenti() MultiCurl::sukses($panggilan balik) MultiCurl::unsetHeader($kunci) MultiIkal::unsetProxy() MultiCurl::verbose($on = benar, $output = 'STDERR')
Lihat KEAMANAN untuk pertimbangan keamanan.
Lihat PEMECAHAN MASALAH untuk bantuan pemecahan masalah.
Lihat PENGUJIAN untuk informasi pengujian.
Periksa masalah yang masih terbuka atau buka masalah baru untuk memulai diskusi seputar bug atau fitur.
Cabangkan repositori di GitHub untuk mulai membuat perubahan.
Tulis satu atau lebih pengujian untuk fitur baru atau yang mengungkap bug.
Buat perubahan kode untuk mengimplementasikan fitur atau memperbaiki bug.
Kirim permintaan tarik agar perubahan Anda digabungkan dan dipublikasikan.