English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل PHP الأساسي

دليل PHP المتقدم

PHP & MySQL

دليل PHP

استخدام وظيفة PHP curl_setopt() و مثال

دليل مرجع PHP CURL

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt — إعداد خيار نقل CURL.

النحو

bool curl_setopt ( resource $ch , int $option , mixed $value )

لإعداد خيار على معالج الجلسة CURL المحدد.

المعامل

ch

المعالج CURL الذي يعود به curl_init().

option

الخيارات التي يجب تعيينها منCURLOPT_XXX.

القيمة

سيتم تعيين القيمة الموجودة في خيار option.

بالنسبة لهذه الخيارات الخيارية، يجب تعيين القيمة كقيمة من نوع bool:

خياراختياريالقيمةالقيمةملاحظة
CURLOPT_AUTOREFERERعندما يتم استنادLocation:عندما يتم التحويل، سيقوم بتعيين عنوان الرأس في الكوكي تلقائيًا.Referer:المعلومات.
CURLOPT_BINARYTRANSFERعندما يتم تفعيليتم إرجاع المعلومات التي تم الحصول عليها بواسطة curl_exec() على شكل تدفق ملف بدلاً من إرجاعها مباشرة.عندما يكون، سيقوم بالعودة إلى الناتج الأصلي (الخام).
CURLOPT_COOKIESESSIONعندما يتم تفعيله، سيقوم curl بنقل فقط ملف الكوكيز للجلسة، وسيقوم بتخطي الكوكي الأخرى، في الوضع المبدئي سيقوم CURL بتقديم جميع الكوكي إلى الخادم. كوكي الجلسة هي الكوكي التي توجد لتقييم صحة الجلسة على الخادم.
CURLOPT_CRLFCURLOPT_CRLF
در صورت فعال بودن، کاراکترهای اتمی Unix را به کاراکترهای بازگشت و خط جدید تبدیل می‌کند.CURLOPT_DNS_USE_GLOBAL_CACHE
در صورت فعال بودن، یک کش DNS جهانی فعال می‌کند، این گزینه امنیت thread-safe دارد و به صورت پیش‌فرض فعال است.CURLOPT_FAILONERROR
HTTP status code نمایش می‌دهد، عملکرد پیش‌فرض است که اطلاعات HTTP با شماره کمتر از یا برابر با 400 را نادیده می‌گیرد.CURLOPT_FILETIMEدر صورت فعال بودن، سعی می‌کند اطلاعات مستندات دور را تغییر دهد. اطلاعات نتیجه از طریق تابع curl_getinfo() به دست می‌آید.CURLINFO_FILETIME            بازگشتی.
CURLOPT_FOLLOWLOCATIONدر صورت فعال بودن، اطلاعات بازگشتی سرور را به عنوان گزینه‌های بازگشتی curl_getinfo() ارسال می‌کند."Location: "در سرور به صورت پیچیدگی به عنوان سربرگ بازگردانده می‌شود، ازCURLOPT_MAXREDIRSمقدار بازگشت پیچیدگی را محدود می‌کند.
CURLOPT_FORBID_REUSEدر پایان تعامل، اتصال را به زور قطع می‌کند و قابل استفاده مجدد نیست.
CURLOPT_FRESH_CONNECTیک اتصال جدید اجباری را دریافت می‌کند، به جای اتصال موجود در کش.
CURLOPT_FTP_USE_EPRTدر صورت فعال بودن، در هنگام دانلود FTP از دستور EPRT (یا LPRT) استفاده می‌کند. تنظیم شده بهFALSEEPRT و LPRT غیرفعال می‌کند و از دستور PORT استفاده می‌کند.            فقط.
CURLOPT_FTP_USE_EPSVدر صورت فعال بودن، قبل از بازگشت به حالت PASV در فرآیند انتقال FTP، ابتدا دستور EPSV را امتحان می‌کند. تنظیم شده بهFALSEEPSV دستور را غیرفعال می‌کند.
CURLOPT_FTPAPPENDدر صورت فعال بودن، به جای پوشش فایل، به آن اضافه می‌شود.
CURLOPT_FTPASCIICURLOPT_TRANSFERTEXTالیه‌ای است.
CURLOPT_FTPLISTONLYدر صورت فعال بودن، فقط نام‌های پوشه‌های FTP لیست می‌شوند.
CURLOPT_HEADERدر صورت فعال بودن، اطلاعات فایل سرور به عنوان جریان داده‌ها خروجی داده می‌شود.
CURLINFO_HEADER_OUTدر صورت فعال بودن، درخواست‌های رشته‌ای دستگیره‌ها را دنبال می‌کند.از PHP 5.1.3 به بعد قابل استفاده است.CURLINFO_پیشوند به قصد آگاهی (عمدی) قرار داده شده است.
CURLOPT_HTTPGETدر صورت فعال بودن، HTTP method به GET تنظیم می‌شود، زیرا GET به صورت پیش‌فرض است، بنابراین فقط در صورت تغییر از آن استفاده می‌شود.
CURLOPT_HTTPPROXYTUNNELدر صورت فعال بودن، از طریق پروکسی HTTP برای انتقال استفاده می‌شود.
CURLOPT_MUTEدر صورت فعال بودن، تمامی پارامترهای تغییر یافته در تابع CURL به حالت پیش‌فرض بازگردانده می‌شوند.
CURLOPT_NETRCبعد از برقراری اتصال، برای دریافت اطلاعات نام کاربری و رمز عبور از فایل ~/.netrc به ایستگاه‌های دور دسترسی پیدا کنید.
CURLOPT_NOBODYعندما يتم تفعيله، لن يتم إرجاع جزء الجسم من HTML.
CURLOPT_NOPROGRESS

عندما يتم تفعيله، سيتم إغلاق شريط التقدم في نقل curl، يتم تعيين هذا الخيار بشكل افتراضي على التفعيل.

ملاحظة:

يقوم PHP بتعيين هذا الخيار تلقائيًا علىTRUE، يجب تغيير هذا الخيار فقط لأغراض الت调试.


CURLOPT_NOSIGNALعندما يتم تفعيله، سيتم تجاهل جميع الإشارات التي يمررها curl إلى php. يتم تفعيل هذا الخيار بشكل افتراضي في نقل SAPI الموزع.تم إضافته في CURL 7.10.
CURLOPT_POSTعندما يتم تفعيله، سيتم إرسال طلب POST عادي، النوع:application/x-www-form-urlencoded، مثل تقديم النموذج.
عندما يتم تفعيله، يسمح بإرسال ملفات HTTP، يجب أيضًا تعيينCURLOPT_RETURNTRANSFERCURLOPT_INFILEوCURLOPT_INFILESIZE.
يتم إرجاع المعلومات التي تم الحصول عليها بواسطة curl_exec() على شكل تدفق ملف بدلاً من إرجاعها مباشرة.باستخدام
CURLOPT_SSL_VERIFYPEERعندما يتم تعطيله، سيقوم CURL بإنهاء التحقق من الخادم.CURLOPT_CAINFOيتم تعيين خيار إعداد استخدام الشهاداتCURLOPT_CAPATHيتم تعيين خيار إعداد مجلد الشهادات            إذاCURLOPT_SSL_VERIFYPEER(القيمة الافتراضية 2) عند التفعيل،CURLOPT_SSL_VERIFYHOSTيجب أن يتم تعيينه علىTRUEإذا لم يتم تعيينه، يتم تعيينه علىFALSE.يتم تعيينه افتراضيًا من CURL 7.10TRUE. بدءًا من CURL 7.10، يتم تفعيل الاتصال بشكل افتراضي.
CURLOPT_TRANSFERTEXTعندما يتم تفعيله، سيتم استخدام نمط ASCII في نقل FTP. بالنسبة لـ LDAP، سيتم استرجاع معلومات النص النقي بدلاً من HTML. على نظام Windows، لن يتعرف النظام علىSTDOUTلإعداد نمط ثنائي.
CURLOPT_UNRESTRICTED_AUTHعندما يتم استخدامCURLOPT_FOLLOWLOCATIONسيتم إضافة معلومات اسم المستخدم وكلمة المرور في المناطق المتعددة من عنوان الرأس المُنتج، حتى إذا تغيرت النطاقية.
CURLOPT_UPLOADعندما يتم تفعيله، يسمح بتحميل الملفات.
CURLOPT_VERBOSEعندما يتم تفعيله، سيتم تقديم جميع المعلومات، وسيتم تخزينها فيSTDERRأو المحددCURLOPT_STDERRفيها.

بالنسبة للمعلمات الاختيارية لـ option التالية، يجب تعيين value على قيمة integer نوع.

خياراختياريالقيمةالقيمةملاحظة
CURLOPT_BUFFERSIZEحجم البيانات التي يتم قراءتها من المخزن المؤقت في كل مرة تحصل فيها على بيانات، ولكن لا يُضمن أن يتم ملء هذه القيمة في كل مرة.تم إضافة في CURL 7.10.
CURLOPT_CLOSEPOLICYليس فقط CURLCLOSEPOLICY_LEAST_RECENTLY_USED أو CURLCLOSEPOLICY_OLDEST، بل هناك أيضًا ثلاثة CURLCLOSEPOLICY آخرين، ولكن CURL لا يدعمها حاليًا.
CURLOPT_CONNECTTIMEOUTفي انتظار بدء الاتصال، إذا تم تعيينه على 0، فسيكون الانتظار غير محدود.
CURLOPT_CONNECTTIMEOUT_MSوقت محاولة الاتصال بالوقت، بالألفية من الثواني. إذا تم تعيينه على 0، فإنه ينتظر إلى الأبد.تم إضافته في CURL 7.16.2. متاح من PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUTتحديد وقت الحفظ للمعلومات DNS في الذاكرة، والقيمة الافتراضية هي 120 ثانية.
CURLOPT_FTPSSLAUTHطريقة التحقق من صحة FTP:CURLFTPAUTH_SSL (يحاول أولاً SSL)،CURLFTPAUTH_TLS (يحاول أولاً TLS) أوCURLFTPAUTH_DEFAULT (يقرر CURL بشكل تلقائي).تم إضافته في CURL 7.12.2.
CURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_NONE (القيمة الافتراضية، يقرر CURL باستقلالية ما إذا كان يجب استخدام هذا الإصدار أو لا)،CURL_HTTP_VERSION_1_0 (استخدام HTTP/1.0 الإلزامي) أوCURL_HTTP_VERSION_1_1 (استخدام HTTP/1.1 الإلزامي).
CURLOPT_INFILESIZEتحديد الحد الأقصى لحجم ملف التحميل، بالبتيات (بایت)
CURLOPT_LOW_SPEED_LIMITعندما يكون سرعة التحويل أقل منCURLOPT_LOW_SPEED_LIMITفي بيتا/ثانية، سيستخدم PHP بناءً علىCURLOPT_LOW_SPEED_TIMEلتحديد ما إذا كان التحويل بسبب البطء سيتم إلغاء
CURLOPT_LOW_SPEED_TIMEعندما يكون سرعة التحويل أقل منCURLOPT_LOW_SPEED_LIMITفي بيتا/ثانية، سيستخدم PHP بناءً علىCURLOPT_LOW_SPEED_TIMEلتحديد ما إذا كان التحويل بسبب البطء سيتم إلغاء
CURLOPT_MAXCONNECTSعدد أكبر من الاتصالات المسموح به، إذا زاد عن ذلك سيتمCURLOPT_CLOSEPOLICYتحديد ما يجب وقف الاتصالات
CURLOPT_MAXREDIRSتحديد عدد أكبر من التحويلات HTTP، هذا الخيار هو معCURLOPT_FOLLOWLOCATIONمعًا.
CURLOPT_PORTلتحديد عدد المنفذ الاتصال. (اختياري)
CURLOPT_PROTOCOLSCURLPROTO_*المنطقة المخصصة تشير إلى. إذا كانت مفعلة، فإن قيمة المنطقة المخصصة ستحدد ما هي البروتوكولات المتاحة لـ libcurl أثناء عملية التحويل. هذا سيسمح لك بدعم العديد من البروتوكولات عند تجميع libcurl، ولكن الحد هو فقط مجموعة فرعية من تلك المسموح باستخدامها. سيستخدم libcurl بشكل افتراضي جميع البروتوكولات التي يدعمها. انظرCURLOPT_REDIR_PROTOCOLSالخيارات المتاحة للبروتوكولات هي: CURLPROTO_HTTP،CURLPROTO_HTTPS،CURLPROTO_FTP،CURLPROTO_FTPS،CURLPROTO_SCP،CURLPROTO_SFTP،CURLPROTO_TELNET،CURLPROTO_LDAP،CURLPROTO_LDAPS،CURLPROTO_DICT،CURLPROTO_FILE،CURLPROTO_TFTP،CURLPROTO_ALLتم إضافته في CURL 7.19.4.
CURLOPT_PROTOCOLSCURLPROTO_*المنطقة المخصصة تشير إلى. إذا كانت مفعلة، فإن قيمة المنطقة المخصصة ستحدد ما هي البروتوكولات المتاحة لـ libcurl أثناء عملية التحويل. هذا سيسمح لك بدعم العديد من البروتوكولات عند تجميع libcurl، ولكن الحد هو فقط مجموعة فرعية من تلك المسموح باستخدامها. سيستخدم libcurl بشكل افتراضي جميع البروتوكولات التي يدعمها. انظرCURLOPT_REDIR_PROTOCOLSالخيارات المتاحة للبروتوكولات هي: CURLPROTO_HTTP،CURLPROTO_HTTPS،CURLPROTO_FTP،CURLPROTO_FTPS،CURLPROTO_SCP،CURLPROTO_SFTP،CURLPROTO_TELNET،CURLPROTO_LDAP،CURLPROTO_LDAPS،CURLPROTO_DICT،CURLPROTO_FILE،CURLPROTO_TFTP،CURLPROTO_ALLتم إضافته في CURL 7.19.4.
CURLOPT_PROXYAUTHطريقة التحقق من اتصال الوسيط HTTP.CURLOPT_HTTPAUTHبأعلام الحقول النصية لضبط الخيارات المختلفة. بالنسبة لتحقق الوسيط فقطCURLAUTH_BASICوCURLAUTH_NTLMيدعم حاليًا.تم إضافته في CURL 7.10.7.
CURLOPT_PROXYPORTمنفذ خدمة الوسيط. يمكن أيضًا ضبط المنفذ فيCURLOPT_PROXYفيه يتم ضبط.
CURLOPT_PROXYTYPEليسCURLPROXY_HTTP (القيمة الافتراضية) هوCURLPROXY_SOCKS5.تم إضافة في CURL 7.10.
CURLOPT_REDIR_PROTOCOLSCURLPROTO_*فيه قيمته النصية. إذا تم تفعيلها، فإن القيمة النصية ستحدد ما يمكن استخدامها للتحويلات.CURLOPT_FOLLOWLOCATIONالسماح بالتتبع التلقائي للتحويلات عند التفعيل. سيجعل هذا يحدد مجموعة معينة من البروتوكولات التي يمكن استخدامها لتتبع التحويلات. سيتمكن libcurl بشكل افتراضي من استخدام جميع البروتوكولات باستثناء FILE و SCP. هذا يختلف عن إصدار 7.19.4 المسبق الذي يتبع جميع البروتوكولات المدعومة.CURLOPT_PROTOCOLS.تم إضافته في CURL 7.19.4.
CURLOPT_RESUME_FROMإرسال إزاحة البايت الواحد (يستخدم للاستئناف التحميل).
CURLOPT_SSL_VERIFYHOST1 التحقق من وجود اسم عام (common name) في شهادة SSL للخادم. ملاحظة المترجم: اسم العام (Common Name) عادةً هو اسم النطاق (domain) أو اسم الفرعية النطاق (sub domain) الذي سوف تطالب بشهادة SSL.
CURLOPT_SSLVERSIONالإصدار المستخدم من SSL (2 أو 3). في الوضع الافتراضي، سينقوم PHP بتشخيص هذه القيمة، رغم أن بعض الحالات تتطلب ضبطها يدويًا.
CURLOPT_TIMECONDITIONإذا كانCURLOPT_TIMEVALUEوتم تعديلها بعد تاريخ معين محدد، فإنها تستخدمCURL_TIMECOND_IFMODSINCEالصفحة العائدة، إذا لم يتم تعديلها،CURLOPT_HEADERإذا كانت قيمتها true، فإنها تعود ب"304 لم يتم تعديلها"الـ header،    CURLOPT_HEADERإذا كانت قيمتها false، فإنها تستخدمCURL_TIMECOND_IFUNMODSINCE، القيمة الافتراضية هيCURL_TIMECOND_IFUNMODSINCE.
CURLOPT_TIMEOUTضبط الوقت الأقصى الذي يمكن للـ CURL تنفيذة بالثواني.
CURLOPT_TIMEOUT_MSضبط الوقت الأقصى الذي يمكن للـ CURL تنفيذة بالمللي ثانية.تم إضافته في CURL 7.16.2. يمكن استخدامه من PHP 5.2.3.
CURLOPT_TIMEVALUEضبطCURLOPT_TIMECONDITIONاستخدام الوقت المحدد، في الوضع الافتراضي يستخدمCURL_TIMECOND_IFMODSINCE.

للمواد الخيارية التالية، يجب تعيين القيمة كـ string.

خياراختياريالقيمةالقيمةملاحظة
CURLOPT_CAINFOملف يحتوي على شهادة واحدة أو أكثر لتحقق منها الخادم. هذا المعامل فقط له معنى عند استخدامه معCURLOPT_SSL_VERIFYPEER.
CURLOPT_CAPATHمجلد يحتوي على عدة شهادات CA. هذا الخيار له معنى فقط عند استخدامه معCURLOPT_SSL_VERIFYPEERمعًا.
CURLOPT_COOKIEتعيين HTTP request"Cookie: "جزء من المحتوى. يتم فصل الكوكيين بفاصلة محملة، يتبعها مسافة (مثل، "fruit=apple; colour=red)")
CURLOPT_COOKIEFILEاسم ملف يحتوي على بيانات الكوكيز، يمكن أن يكون صيغة Netscape، أو مجرد إدخال معلومات رأس HTTP النقية في الملف.
CURLOPT_COOKIEJARملف لتح Konservare cookie بعد انتهاء الاتصال.
CURLOPT_CUSTOMREQUEST

استخدام معلومات طلب مخصص بدلاً من"GET"أو"HEAD"كطلب HTTP. هذا يهم لتنفيذ"DELETE" أو أي طلب HTTP أكثر سرية."GET"،"POST"،"CONNECT"، إلخ. أي أن لا تدخل طلب HTTP كامل هنا. على سبيل المثال، أدخل"GET /index.html HTTP/1.0\r\n\r\n"غير صحيح.

ملاحظة:

لا تستخدمها حتى تُتأكد من أن الخادم يدعم هذه طريقة الطلب المخصصة.


CURLOPT_EGDSOCKETمثلCURLOPT_RANDOM_FILE، باستثناء دائرة التجميع الإنتروبي لـ Daemon套كست.
CURLOPT_ENCODINGفي رأس الطلب لـ HTTP"Accept-Encoding: "القيمة. الترميز المدعوم هو"identity"،"deflate"و"gzip"، إذا كان نصًا فارغًا""، سيتم إرسال جميع أنواع الترميز المدعومة.تم إضافة في CURL 7.10.
CURLOPT_FTPPORTهذا القيمة سيتم استخدامها للحصول على عنوان IP المطلوب لاستخدام أوامر FTP "POST". أوامر "POST" تخبر الخادم عن بُعد بالاتصال بعنوان IP المحدد من قبلنا. يمكن أن يكون هذا النص عنوان IP النصي، اسم المضيف، اسم واجهة الشبكة (في UNIX) أو مجرد "-" لاستخدام عنوان IP الافتراضي.
CURLOPT_INTERFACEاسم واجهة الشبكة المرسلة، يمكن أن يكون اسم واجهة أو عنوان IP أو اسم مستضيف.
CURLOPT_KRB4LEVELمستوى الأمان KRB4 (Kerberos 4). أي قيمة من القيم التالية صالحة (من منخفض إلى مرتفع):"clear"،"safe"،"confidential"،"private".. إذا لم يكن التوافق مع هذه الأنواع من الأنماط، سيتم استخدام"private". يتم تعيين هذا الخيار إلىNULLسيتم تعطيل التحقق من الأمان KRB4. في الوقت الحالي، يمكن استخدام KRB4 Security Authentication فقط للنقل FTP.
CURLOPT_POSTFIELDSسيتم إرسال جميع البيانات باستخدام عملية "POST" في بروتوكول HTTP. إذا كنت ترغب في إرسال ملف، فأضف@الجزء الأمامي ويستخدم المسار الكامل. يمكن للمعامل هذا أن يكون شبهًا مثلpara1=val1¶2=val2&...استخدام 'أو قائمة باستخدام اسم الحقل كключ وبيانات الحقل كقيمة. إذاالقيمةوهي قائمة،Content-Typeسيتم تعيين رأسmultipart/form-data.
CURLOPT_PROXYقناة الوسيط HTTP.
CURLOPT_PROXYUSERPWDيُستخدم لـ"[username]:[password]"النصوص بتنسيق.
CURLOPT_RANDOM_FILEاسم ملف سيتم استخدامه لإنشاء بذورSSL العشوائية.
CURLOPT_RANGEب"X-Y"بشكل، حيث X و Y هما خيارات اختيارية للنطاق الحاصل على البيانات، بمساحة البايت. يدعم سطر نقل HTTP أيضًا بعض هذه العناصر المتكررة المفصولة بالكوما مثل"X-Y,N-M".
CURLOPT_REFERERفي رأس الطلب HTTP"Referer: "المحتوى.
CURLOPT_SSL_CIPHER_LISTقائمة من خوارزميات التشفير SSL. على سبيل المثالRC4-SHAوTLSv1كلها قوائم تشفير متاحة.
CURLOPT_SSLCERTاسم ملف يحتوي على شهادة في تنسيق PEM.
CURLOPT_SSLCERTPASSWDاستخدامCURLOPT_SSLCERTكلمة المرور المطلوبة للشهادة.
CURLOPT_SSLCERTTYPEنوع الشهادة. الدوال المدعومة تشمل"PEM" (القيمة الافتراضية), "DER"و"ENG".تم إضافته في CURL 7.9.3.
CURLOPT_SSLENGINEيُستخدم لـCURLOPT_SSLKEYCURLOPT_SSLKEY
المتغير الذي يحدد محرك التشفير الخاص بالمفتاح الخاص SSL المحدد فيCURLOPT_SSLENGINE_DEFAULT
CURLOPT_SSLKEYالمتغير المستخدم لعمليات التشفير غير المتناظرة.
اسم الملف الذي يحتوي على المفتاح الخاص SSL.

CURLOPT_SSLKEYPASSWDCURLOPT_SSLKEYالمحدد في

ملاحظة:

بما أن هذا الخيار يحتوي على معلومات سرية مثل كلمة المرور، تأكد من أمان هذا النص البرمجي PHP.


CURLOPT_SSLKEYTYPECURLOPT_SSLKEYنوع التشفير لل私密 المحدد في"PEM"،(القيمة الافتراضية)、"DER"و"ENG".
CURLOPT_URLعنوان URL المطلوب الحصول عليه، يمكن أيضًا تعيينه في دالة curl_init().
CURLOPT_USERAGENTإضافة"User-Agent: "الخط النصي للـ header.
CURLOPT_USERPWDتقديم اسم المستخدم وكلمة المرور المطلوبة في الاتصال، بتنسيق:"[username]:[password]".

بالنسبة للخيارات الاختيارية للـ option المذكورة أدناه، يجب تعيين value إلى مجموعة:

خياراختياريالقيمةالقيمةملاحظة
CURLOPT_HTTP200ALIASESمجموعة رموز الاستجابة 200، حيث يتم اعتبار رموز الاستجابة في المجموعة صحيحة، وإلا يتم اعتبارها خطأ.تم إضافته في CURL 7.10.3.
CURLOPT_HTTPHEADERمجموعة تستخدم لتعيين مجال HTTP الـ header. يتم تعيينها باستخدام شكل المجموعة التالي:                       array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTEمجموعة أوامر FTP تُنفذ بعد تنفيذ طلب FTP.
CURLOPT_QUOTEمجموعة أوامر FTP تُنفذ قبل طلب FTP على الخادم.

بالنسبة للخيارات الاختيارية للـ option المذكورة أدناه، يجب تعيين value إلى موارد تدفق (مثل استخدام fopen()):

خياراختياريالقيمةالقيمة
CURLOPT_FILEإعداد موقع ملف الإخراج، والقيمة هي نوع الموارد، والقيمة الافتراضية هي:STDOUT (المتصفح).
CURLOPT_INFILEعندما يتم رفع الملف يجب قراءة عنوان الملف، والقيمة هي نوع الموارد.
CURLOPT_STDERRإعداد عنوان الملف للإخراج الخطأ، والقيمة هي نوع الموارد، وتستبدل القيمة الافتراضية:STDERR.
CURLOPT_WRITEHEADERإعداد عنوان الملف المكتوب فيه جزء المحتوى في عنوان الرأس، والقيمة هي نوع الموارد.

بالنسبة للخيارات الاختيارية للـ option المذكورة أدناه، يجب تعيين value إلى اسم دالة استدعاء:

خياراختياريالقيمةالقيمة
CURLOPT_HEADERFUNCTIONإعداد دالة تدعيمية، تحتوي على معلمتين، الأولى هي معالج CURL، الثانية هي البيانات المطلوبة من العنوان. يجب أن تعتمد مخرجات هذا الدالة على هذا الدالة، وتعود حجم البيانات التي تم كتابتها.
CURLOPT_PASSWDFUNCTIONإعداد دالة تدعيمية، ثلاثة معلمات، الأولى هي معالج CURL، الثانية هي مؤشر إلى نص التسجيل، الثالثة هي الحد الأقصى للطول المسموح به لنص التسجيل. يعود قيمة النص.
CURLOPT_PROGRESSFUNCTIONإعداد دالة تدعيمية، ثلاثة معلمات، الأولى هي معالج CURL، الثانية هي مورد ملفوصف، الثالثة هي الطول. يعود البيانات المضمنة.
CURLOPT_READFUNCTIONاسم الدالة التدعيمية. يجب أن تأخذ الدالة ثلاثة معلمات. الأولى هي مورد CURL؛ الثانية هي المعلمة التي تم تحديدها من خلال الخيار CURLOPT_INFILE المورد المرسل إلى CURL؛ المعلمة الثالثة هي كمية البيانات القابلة للقراءة القصوى. يجب أن يجب أن يعود الدالة التدعيمية النص، طولها أقل أو يساوي كمية البيانات المطلوبة (المعلمة الثالثة). عادة يتم قراءة البيانات من قراءة resource. يعود نص فارغ كإشارة. EOFإشارة (نهاية ملف).
CURLOPT_WRITEFUNCTIONاسم الدالة التدعيمية. يجب أن تأخذ الدالة إثنين من المعلمات. الأولى هي مورد CURL؛ الثانية هي النص المطلوب كتابته. النص المعلومات يجب أن يتم حفظها داخل الدالة. يجب أن تعود الدالة بالعدد الدقيق من الأحرف التي يتم كتابتها، وإلا سيتم قطع التحميل بسبب خطأ. قطع.

قيمة العودة

يعود TRUE عند النجاح، أو FALSE عند الفشل.

سجل التحديثات

الإصدارالشرح
5.2.10الإدخال CURLOPT_PROTOCOLS, وCURLOPT_REDIR_PROTOCOLS.
5.1.0الإدخال CURLOPT_AUTOREFERER,CURLOPT_BINARYTRANSFER,CURLOPT_FTPSSLAUTH,CURLOPT_PROXYAUTH, وCURLOPT_TIMECONDITION.
5.0.0الإدخال CURLOPT_FTP_USE_EPRT,CURLOPT_NOSIGNAL,CURLOPT_UNRESTRICTED_AUTH,CURLOPT_BUFFERSIZE,CURLOPT_HTTPAUTH,CURLOPT_PROXYPORT,CURLOPT_PROXYTYPE,CURLOPT_SSLCERTTYPE, وCURLOPT_HTTP200ALIASES.

مثال على الإنترنت

إعداد جلسة CURL جديدة واستخراج صفحة

<?php
// إنشاء موارد CURL جديدة
$ch = curl_init();
// تعيين URL والخيارات المشار إليها
curl_setopt($ch, CURLOPT_URL, "http://ar.oldtoolbag.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// سحب URL وإيصالها إلى المتصفح
curl_exec($ch);
// إغلاق موارد CURL وإطلاق موارد النظام
curl_close($ch);
?>

مثال على رفع ملفات:

<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>

نتائج المثال أعلاه كالتالي:

Array
(
    [اسم] => Foo
)
Array
(
    [ملف] => Array
        (
            [اسم] => test.png
            [نوع] => image/png
            [اسم مؤقت] => /tmp/phpcpjNeQ
            [خطأ] => 0
            [حجم] => 279
        )
)

تعليقات

تمرير مصفوفة إلى CURLOPT_POSTFIELDS، سيقوم CURL بت编码 البيانات إلى multipart/form-data، أما إذا تم تمرير سلسلة URL-encoded، سيتم ترميز البيانات إلى application/x-www-form-urlencoded.

دليل مرجع PHP CURL