تسهل PHP Curl Class إرسال طلبات HTTP والتكامل مع واجهات برمجة تطبيقات الويب.
تثبيت
متطلبات
البداية السريعة والأمثلة
الطرق المتاحة
حماية
استكشاف الأخطاء وإصلاحها
اختبار
المساهمة
لتثبيت 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->خطأ) {echo 'خطأ: ' . $curl->errorMessage . "n";$curl->diagnose(); } آخر {صدى "الاستجابة:" . "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->خطأ) {echo 'خطأ:' . $curl->errorMessage . "ن"؛ } آخر {صدى "الاستجابة:" . "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' => 'Zach','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->إغلاق();
// مثال للوصول إلى الضفيرة object.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; 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 'call to "' . $instance->url . '" لم ينجح.' . "n";echo 'error code: ' . $instance-> ErrorCode "n";echo 'error message: ' $instance->errorMessage "n"; });$multi_curl->Complete(function($instance) {echo "اكتمل الاتصال" . "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->start(); // الكتل حتى تتم معالجة جميع العناصر الموجودة في قائمة الانتظار.
المزيد من الأمثلة متاحة تحت /examples.
الضفيرة::__construct($base_url = null, $options = []) تجعيد :: __ تدمير () الضفيرة::__get(اسم $) الضفيرة::afterSend($رد الاتصال) الضفيرة::attemptRetry() الضفيرة::قبل الإرسال(رد الاتصال $) الضفيرة::buildPostData($data) الضفيرة::اتصال () الضفيرة::إغلاق() الضفيرة::كاملة(رد الاتصال $) الضفيرة::حذف($url, $query_parameters = [], $data = []) حليقة::تشخيص($return = خطأ) الضفيرة::disableTimeout() الضفيرة::displayCurlOptionValue($option, $value = null) الضفيرة::تنزيل($url، $mixed_filename) الضفيرة::خطأ(رد الاتصال $) الضفيرة::exec($ch = فارغة) الضفيرة::execDone() الضفيرة::fastDownload($url، $filename، $connections = 4) الضفيرة::الحصول على($url, $data = []) الضفيرة::getAttempts() الضفيرة::getBeforeSendCallback() الضفيرة::getCompleteCallback() الضفيرة::getCookie(مفتاح $) الضفيرة::getCurl() الضفيرة::getCurlErrorCode() الضفيرة::getCurlErrorMessage() الضفيرة::getDownloadCompleteCallback() الضفيرة::getDownloadFileName() الضفيرة::getErrorCallback() الضفيرة::getErrorCode() الضفيرة::getErrorMessage() الضفيرة::getFileHandle() الضفيرة::getHttpErrorMessage() الضفيرة::getHttpStatusCode() الضفيرة::getId() الضفيرة::getInfo($opt = null) الضفيرة::getJsonDecoder() الضفيرة::getOpt($option) الضفيرة::getOptions() الضفيرة::getRawResponse() الضفيرة::getRawResponseHeaders() الضفيرة::getRemainingRetries() الضفيرة::getRequestHeaders() الضفيرة::getResponse() الضفيرة::getResponseCookie(مفتاح $) الضفيرة::getResponseCookies() الضفيرة::getResponseHeaders() الضفيرة::getRetries() الضفيرة::getRetryDecider() الضفيرة::getSuccessCallback() الضفيرة::getUrl() الضفيرة::getUserSetOptions() الضفيرة::getXmlDecoder() الضفيرة::الرأس($url, $data = []) الضفيرة::isChildOfMultiCurl() الضفيرة::isCurlError() الضفيرة::isError() الضفيرة::isHttpError() الضفيرة::خيارات($url, $data = []) تجعيد::تصحيح($url, $data = []) الضفيرة::post($url, $data = '', $follow_303_with_post = false) الضفيرة::التقدم(رد الاتصال $) تجعيد::وضع($url, $data = []) الضفيرة::removeHeader(مفتاح $) حليقة::إعادة تعيين () الضفيرة::بحث($url, $data = []) الضفيرة::setAutoReferer($auto_referer = صحيح) الضفيرة::setAutoReferrer($auto_referrer = صحيح) الضفيرة::setBasicAuthentication(اسم المستخدم$، كلمة المرور $ = '') الضفيرة::setConnectTimeout($ثواني) الضفيرة::setCookie(مفتاح $، قيمة $) الضفيرة::setCookieFile($cookie_file) الضفيرة::setCookieJar($cookie_jar) الضفيرة::setCookieString($string) الضفيرة::setCookies(ملفات تعريف الارتباط $) الضفيرة::setDefaultDecoder($mixed = 'json') الضفيرة::setDefaultHeaderOut() الضفيرة::setDefaultJsonDecoder() الضفيرة::setDefaultTimeout() الضفيرة::setDefaultUserAgent() الضفيرة::setDefaultXmlDecoder() الضفيرة::setDigestAuthentication(اسم المستخدم$، كلمة المرور $ = '') الضفيرة::setFile(ملف $) الضفيرة::setFollowLocation($follow_location = صحيح) الضفيرة::setForbidReuse($forbid_reuse = صحيح) الضفيرة::setHeader(مفتاح $، قيمة $) الضفيرة::setHeaders($headers) الضفيرة::setInterface($interface) الضفيرة::setJsonDecoder($مختلط) الضفيرة::setMaxFilesize($بايت) الضفيرة::setMaximumRedirects($maximum_redirects) الضفيرة::setOpt(خيار $، قيمة $) الضفيرة::setOpts($options) الضفيرة::setPort(منفذ $) الضفيرة::setProtocols($protocols) Curl::setProxy($proxy، $port = null، $username = null، $password = null) الضفيرة::setProxyAuth($auth) الضفيرة::setProxyTunnel($tunnel = صحيح) الضفيرة::setProxyType($type) الضفيرة::setRange(نطاق $) الضفيرة::setRedirectProtocols($redirect_protocols) الضفيرة::setReferer(المرجع $) الضفيرة::setReferrer($المُحيل) الضفيرة::setRetry($mixed) الضفيرة::setStop($callback = null) الضفيرة::setTimeout($ثواني) الضفيرة::setUrl($url, $mixed_data = '') الضفيرة::setUserAgent($user_agent) الضفيرة::setXmlDecoder($mixed) الضفيرة::توقف() الضفيرة::النجاح(رد الاتصال $) الضفيرة::unsetHeader(مفتاح $) الضفيرة::unsetProxy() الضفيرة::verbose($on = true، $output = 'STDERR') MultiCurl::__construct($base_url = null) MultiCurl::__destruct() MultiCurl::addCurl(كيرل $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::خطأ(رد الاتصال$) MultiCurl::getActiveCurls() MultiCurl::getOpt($option) MultiCurl::removeHeader(مفتاح $) MultiCurl::setAutoReferer($auto_referer = صحيح) MultiCurl::setAutoReferrer($auto_referrer = صحيح) 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($اسم المستخدم، كلمة المرور $ = '') MultiCurl::setFile($file) MultiCurl::setFollowLocation($follow_location = صحيح) MultiCurl::setForbidReuse($forbid_reuse = صحيح) MultiCurl::setHeader(مفتاح $، قيمة $) MultiCurl::setHeaders($headers) MultiCurl::setInterface($interface) MultiCurl::setJsonDecoder($مختلط) MultiCurl::setMaximumRedirects($maximum_redirects) MultiCurl::setOpt($option, $value) MultiCurl::setOpts($options) MultiCurl::setPort(منفذ $) MultiCurl::setProxies($proxies) MultiCurl::setProxy($proxy, $port = null, $username = null, $password = null) MultiCurl::setProxyAuth($auth) MultiCurl::setProxyTunnel($tunnel = صحيح) MultiCurl::setProxyType($type) MultiCurl::setRange(نطاق $) 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($مختلط) MultiCurl::start() MultiCurl::stop() MultiCurl::success($رد الاتصال) MultiCurl::unsetHeader(مفتاح $) MultiCurl::unsetProxy() MultiCurl::verbose($on = true، $output = 'STDERR')
راجع الأمان لاعتبارات أمنية.
راجع استكشاف الأخطاء وإصلاحها للحصول على مساعدة في استكشاف الأخطاء وإصلاحها.
راجع الاختبار للحصول على معلومات الاختبار.
تحقق من وجود مشكلات مفتوحة أو افتح مشكلة جديدة لبدء مناقشة حول خطأ أو ميزة.
قم بتفرع المستودع على GitHub لبدء إجراء التغييرات.
اكتب اختبارًا واحدًا أو أكثر للميزة الجديدة أو التي تكشف الخلل.
قم بإجراء تغييرات على التعليمات البرمجية لتنفيذ الميزة أو إصلاح الخلل.
أرسل طلب سحب لدمج تغييراتك ونشرها.