PHP Curl Class ทำให้การส่งคำขอ HTTP และผสานรวมกับ API ของเว็บเป็นเรื่องง่าย
การติดตั้ง
ความต้องการ
การเริ่มต้นอย่างรวดเร็วและตัวอย่าง
วิธีการที่มีอยู่
ความปลอดภัย
การแก้ไขปัญหา
การทดสอบ
มีส่วนร่วม
หากต้องการติดตั้ง PHP Curl Class ให้รันคำสั่งต่อไปนี้:
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 Class ใช้งานได้กับ PHP 8.4, 8.3, 8.2, 8.1, 8.0 และ 7.4
มีตัวอย่างเพิ่มเติมอยู่ใต้ /examples
ต้องการ __DIR__ '/vendor/autoload.php';use CurlCurl;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'ข้อผิดพลาด: ' . $curl->errorMessage "n";$curl->วินิจฉัย(); } else {echo 'การตอบสนอง:' "n";var_dump($curl->ตอบกลับ); -
// 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-ร้องขอ-ด้วย', 'XMLHttpRequest');$curl->setCookie('key', 'value');$curl->get('https://www.example.com/');if ($curl->error) {echo 'ข้อผิดพลาด: ' . $curl->errorMessage "น"; } else {echo 'การตอบสนอง:' "n";var_dump($curl->ตอบกลับ); }var_dump($curl->requestHeaders);var_dump($curl->responseHeaders);
$curl = ใหม่ 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 = 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['ประเภทเนื้อหา'] "น"; // image/pngecho $curl->responseHeaders['CoNTeNT-TyPE'] "น"; // รูปภาพ/png
// Manual clean up.$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';ใช้ CurlMultiCurl;// คำขอควบคู่ไปกับฟังก์ชันการเรียกกลับ $multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url . '" สำเร็จแล้ว . "n";echo 'response:' "n";var_dump($instance->ตอบกลับ); });$multi_curl->error(function($instance) {echo 'call to "' . $instance->url . '" was unsuccessful.' . "n";echo 'รหัสข้อผิดพลาด: ' . $instance-> errorCode . "n";echo ' ข้อความแสดงข้อผิดพลาด: ' . });$multi_curl->complete(function($instance) {echo 'call complete' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'สวัสดีชาวโลก', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'สวัสดีชาวโลก', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'สวัสดีชาวโลก', ]);$multi_curl->เริ่มต้น(); // บล็อกจนกว่ารายการทั้งหมดในคิวจะได้รับการประมวลผล
มีตัวอย่างเพิ่มเติมอยู่ใต้ /examples
Curl::__construct($base_url = null, $options = []) Curl::__ทำลาย() Curl::__get($ชื่อ) Curl::afterSend($โทรกลับ) Curl::พยายามลองอีกครั้ง() Curl::beforeSend($โทรกลับ) Curl::buildPostData($ข้อมูล) ขด::โทร() ขด::ปิด() Curl::complete($โทรกลับ) Curl::delete($url, $query_parameters = [], $data = []) Curl::diagnose($return = false) Curl::disableTimeout() Curl::displayCurlOptionValue($ตัวเลือก, $value = null) Curl::ดาวน์โหลด($url, $mixed_filename) Curl::error($โทรกลับ) Curl::exec($ch = null) Curl::execDone() Curl::fastDownload($url, $filename, $connections = 4) Curl::get($url, $data = []) Curl::getAttempts() Curl::getBeforeSendCallback() Curl::getCompleteCallback() Curl::getCookie($คีย์) ขด::getCurl() Curl::getCurlErrorCode() Curl::getCurlErrorMessage() Curl::getDownloadCompleteCallback() Curl::getDownloadFileName() Curl::getErrorCallback() Curl::getErrorCode() Curl::getErrorMessage() Curl::getFileHandle() Curl::getHttpErrorMessage() Curl::getHttpStatusCode() ขด::getId() Curl::getInfo($opt = null) Curl::getJsonDecoder() Curl::getOpt($ตัวเลือก) Curl::getOptions() Curl::getRawResponse() Curl::getRawResponseHeaders() Curl::getRemainingRetries() Curl::getRequestHeaders() ขด::getResponse() Curl::getResponseCookie($คีย์) Curl::getResponseCookies() Curl::getResponseHeaders() Curl::getRetries() Curl::getRetryDecider() Curl::getSuccessCallback() ขด::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::ความคืบหน้า($โทรกลับ) Curl::put($url, $data = []) Curl::removeHeader($คีย์) ขด::รีเซ็ต() Curl::search($url, $data = []) Curl::setAutoReferer($auto_referer = true) Curl::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($ชื่อผู้ใช้, $password = '') Curl::setConnectTimeout($วินาที) Curl::setCookie($คีย์, $value) Curl::setCookieFile($cookie_file) Curl::setCookieJar($cookie_jar) Curl::setCookieString($สตริง) Curl::setCookies($คุกกี้) Curl::setDefaultDecoder($mixed = 'json') Curl::setDefaultHeaderOut() Curl::setDefaultJsonDecoder() Curl::setDefaultTimeout() Curl::setDefaultUserAgent() Curl::setDefaultXmlDecoder() Curl::setDigestAuthentication($ชื่อผู้ใช้, $password = '') Curl::setFile($ไฟล์) Curl::setFollowLocation($follow_location = true) Curl::setForbidReuse($forbid_reuse = true) Curl::setHeader($คีย์, $value) Curl::setHeaders($ส่วนหัว) Curl::setInterface($อินเทอร์เฟซ) Curl::setJsonDecoder($ผสม) Curl::setMaxFilesize($ไบต์) Curl::setMaximumRedirects($maximum_redirects) Curl::setOpt($ตัวเลือก, $value) Curl::setOpts($ตัวเลือก) Curl::setPort($พอร์ต) Curl::setProtocols($โปรโตคอล) Curl::setProxy($พร็อกซี, $พอร์ต = null, $username = null, $password = null) Curl::setProxyAuth($รับรองความถูกต้อง) Curl::setProxyTunnel($อุโมงค์ = จริง) Curl::setProxyType(ชนิด $) Curl::setRange(ช่วง $) Curl::setRedirectProtocols($redirect_protocols) Curl::setReferer($ผู้อ้างอิง) Curl::setReferrer($ผู้อ้างอิง) Curl::setRetry($ผสม) Curl::setStop($โทรกลับ = null) Curl::setTimeout($วินาที) Curl::setUrl($url, $mixed_data = '') Curl::setUserAgent($user_agent) Curl::setXmlDecoder($ผสม) ขด::หยุด() Curl::success($โทรกลับ) Curl::unsetHeader($คีย์) Curl::unsetProxy() Curl::verbose($on = true, $output = 'STDERR') MultiCurl::__ สร้าง ($base_url = null) MultiCurl::__ทำลาย() 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($โทรกลับ) MultiCurl::beforeSend($โทรกลับ) MultiCurl::ปิด() MultiCurl::สมบูรณ์($โทรกลับ) MultiCurl::disableTimeout() MultiCurl::error($โทรกลับ) MultiCurl::getActiveCurls() MultiCurl::getOpt($ตัวเลือก) MultiCurl::removeHeader($คีย์) MultiCurl::setAutoReferer($auto_referer = true) MultiCurl::setAutoReferrer($auto_referrer = true) MultiCurl::setBasicAuthentication($ชื่อผู้ใช้, $password = '') MultiCurl::setConcurrency($ พร้อมกัน) MultiCurl::setConnectTimeout($วินาที) MultiCurl::setCookie($คีย์, $value) MultiCurl::setCookieFile($cookie_file) MultiCurl::setCookieJar($cookie_jar) MultiCurl::setCookieString($สตริง) MultiCurl::setCookies($คุกกี้) MultiCurl::setDigestAuthentication($ชื่อผู้ใช้, $password = '') MultiCurl::setFile($ไฟล์) MultiCurl::setFollowLocation($follow_location = true) MultiCurl::setForbidReuse($forbid_reuse = true) MultiCurl::setHeader($คีย์, $value) MultiCurl::setHeaders($ส่วนหัว) MultiCurl::setInterface($อินเทอร์เฟซ) MultiCurl::setJsonDecoder($ผสม) MultiCurl::setMaximumRedirects($maximum_redirects) MultiCurl::setOpt($ตัวเลือก, $value) MultiCurl::setOpts($ตัวเลือก) MultiCurl::setPort($พอร์ต) MultiCurl::setProxies($พรอกซี) MultiCurl::setProxy($พร็อกซี, $พอร์ต = null, $ชื่อผู้ใช้ = null, $password = null) MultiCurl::setProxyAuth($รับรองความถูกต้อง) MultiCurl::setProxyTunnel($อุโมงค์ = จริง) MultiCurl::setProxyType(ชนิด $) MultiCurl::setRange($ช่วง) MultiCurl::setRateLimit($rate_limit) MultiCurl::setReferer($ผู้อ้างอิง) MultiCurl::setReferrer($ผู้อ้างอิง) MultiCurl::setRequestTimeAccuracy() MultiCurl::setRetry($ผสม) MultiCurl::setTimeout($วินาที) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($ผสม) MultiCurl::เริ่มต้น() MultiCurl::หยุด() MultiCurl::success($โทรกลับ) MultiCurl::unsetHeader($คีย์) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
ดูความปลอดภัยสำหรับข้อควรพิจารณาด้านความปลอดภัย
ดูการแก้ไขปัญหาสำหรับความช่วยเหลือในการแก้ไขปัญหา
ดูการทดสอบสำหรับข้อมูลการทดสอบ
ตรวจสอบปัญหาที่เปิดอยู่หรือเปิดประเด็นใหม่เพื่อเริ่มการสนทนาเกี่ยวกับจุดบกพร่องหรือฟีเจอร์
แยกพื้นที่เก็บข้อมูลบน GitHub เพื่อเริ่มทำการเปลี่ยนแปลง
เขียนการทดสอบอย่างน้อยหนึ่งรายการสำหรับคุณลักษณะใหม่หรือที่เปิดเผยจุดบกพร่อง
ทำการเปลี่ยนแปลงโค้ดเพื่อใช้คุณลักษณะนี้หรือแก้ไขข้อบกพร่อง
ส่งคำขอดึงเพื่อรวมการเปลี่ยนแปลงและเผยแพร่