cURL، وهو اختصار لـ "عميل لـ URLs"، هو قوة برمجية تمكن المطورين من استخدام مجموعة متنوعة من الأدوات لنقل البيانات. يوفر وظيفتين: أداة سطر أوامر سهلة الاستخدام ومكتبة قوية يمكن دمجها في البرامج.
إذا كنت بحاجة إلى تحرير أو اختبار أوامر PHP cURL الخاصة بك، تحقق من موقع Apidog من خلال النقر على الزر أدناه.
التعريف الرسمي لـ curl_init()
استنادًا إلى الموقع الرسمي لـ PHP، فإن وظيفة curl_init تقوم ببدء جلسة cURL وتعيد مقبض cURL لاستخدامه مع وظائف curl_setopt() و curl_exec() و curl_close().
المعلمات المعنية
url
إذا قدمت عنوان URL، سيتم تعيين خيار CURLOPT_URL إلى قيمته. يمكنك أيضًا تعيين هذا الخيار يدويًا باستخدام وظيفة curl_setopt().
ومع ذلك، لاحظ أن بروتوكول file معطل بواسطة cURL نفسها إذا تم تعيين open_basedir.
قيم الإرجاع
تعيد دالة curl_init() مقبض cURL عند النجاح، و false عند حدوث أخطاء.
ما هو طلب GET؟
في سياق بروتوكول نقل النصوص التشعبية (HTTP)، يعدّ طلب GET طريقة محددة تُستخدم لاسترجاع البيانات من مورد معين على الخادم. يتم تصنيفه كطريقة آمنة، مما يعني أنه لا يغير حالة المورد نفسه. إليك تحليل للتعريف الرسمي:
الوظيفة
طلبات GET هي تمثيل للمورد المحدد.
النتيجة المتوقعة
يجب أن تعيد طلبات GET الناجحة ردًا يحتوي على البيانات المطلوبة، عادةً في شكل HTML أو نص أو تنسيقات بيانات أخرى.
تعديل البيانات
تُستخدم طلبات GET لاسترجاع المعلومات الموجودة ويجب ألا تُستخدم لتعديل البيانات على الخادم.
التخزين المؤقت
يمكن تخزين ردود طلبات GET مؤقتًا بواسطة العميل (متصفح الويب) والخوادم الوسيطة، مما يمكن أن يحسن الأداء للطلبات اللاحقة لنفس المورد.
نقاط رئيسية في طلب GET
- طلبات GET أساسية لكيفية تفاعل متصفحات الويب مع خوادم الويب لاسترجاع صفحات الويب والمورد الأخرى.
- يعتبرون "آمنين" لأنهم لا يغيرون البيانات على جانب الخادم.
- غالبًا ما تُستخدم لاسترجاع المحتوى الثابت مثل صفحات HTML والصور وورقات الأنماط.
أمثلة الكود لطلبات curl_init() GET
للحصول على بداية لفهم كيفية إجراء طلبات GET باستخدام وظيفة curl_init() المعنية، تابع القراءة في هذا القسم!
طلب GET الأساسي
<?php
$url = "https://www.example.com";
// بدء curl
$ch = curl_init($url);
// تعيين الخيار لإرجاع النقل كسلسلة
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// تنفيذ الطلب
$response = curl_exec($ch);
// التحقق من الأخطاء
if(curl_errno($ch)) {
echo 'خطأ:' . curl_error($ch);
} else {
// معالجة الرد (مثلاً، طباعة، فك تشفير JSON)
echo $response;
}
// إغلاق جلسة curl
curl_close($ch);
?>
طلب GET مع خيار إضافي
<?php
$url = "https://www.example.com";
// بدء curl
$ch = curl_init($url);
// تعيين وكيل المستخدم
curl_setopt($ch, CURLOPT_USERAGENT, "نص PHP الخاص بي");
// تعيين الخيار لتتبع إعادة التوجيه
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// تعيين الخيار لإرجاع النقل كسلسلة
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// تنفيذ الطلب
$response = curl_exec($ch);
// التحقق من الأخطاء
if(curl_errno($ch)) {
echo 'خطأ:' . curl_error($ch);
} else {
// معالجة الرد
echo $response;
}
// إغلاق جلسة curl
curl_close($ch);
?>
مثال على طلب GET معقد
هذا هو طلب GET معقد قليلاً يتضمن واجهة برمجة التطبيقات التي تسمح بتصفية المنتجات بناءً على نطاق سعر الفئة، وخيارات الفرز.
<?php
$url = "https://api.example.com/products";
// تعريف معلمات التصفية
$filters = array(
"category" => "الإلكترونيات",
"price_min" => 100,
"price_max" => 500,
"sort" => "السعر_الأعلى"
);
// بناء سلسلة الاستعلام مع المعلمات المشفرة
$queryString = http_build_query($filters);
$url .= "?" . $queryString;
// بدء curl
$ch = curl_init($url);
// تعيين الخيار لإرجاع النقل كسلسلة
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// تعيين رؤوس للإشارة إلى أن البيانات JSON متوقعة (اختياري)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));
// تنفيذ الطلب
$response = curl_exec($ch);
// التحقق من الأخطاء
if(curl_errno($ch)) {
echo 'خطأ:' . curl_error($ch);
} else {
// فك تشفير الرد JSON (بافتراض أن الرد هو JSON)
$data = json_decode($response, true);
// معالجة البيانات (مثلاً، الدورة خلال المنتجات)
if (isset($data['products'])) {
foreach ($data['products'] as $product) {
echo "اسم المنتج: " . $product['name'] . ", السعر: $" . $product['price'] . PHP_EOL;
}
}
}
// إغلاق جلسة curl
curl_close($ch);
?>
شرح الكود:
- نحدد عنوان واجهة برمجة التطبيقات ومعلمات التصفية (الفئة، نطاق السعر، والترتيب).
- نستخدم
http_build_queryلإنشاء سلسلة استعلام مع قيم المعلمات المشفرة ونضيفها إلى عنوان URL. - تحدد
curl_setoptالخيارات للطلب، بما في ذلك التقاط الرد وإمكانية تعيين الرؤوس إذا كانت واجهة برمجة التطبيقات تتوقع تنسيق بيانات محدد (مثل JSON). - بعد التحقق من الأخطاء، يتم فك تشفير الرد كـ JSON (بافتراض أن واجهة برمجة التطبيقات تعيد بيانات JSON).
- نقوم بالتكرار عبر البيانات المفككة (مصفوفة المنتجات) وعرض تفاصيل المنتج.
ملاحظة يجب قراءتها
يرجى ملاحظة أن هذه هي أمثلة كود مبسطة لتوضيح كيفية إجراء طلبات GET باستخدام وظيفة curl_init()، لذا تأكد من إجراء التعديلات المطلوبة في بيئة التطوير الخاصة بك!
للحصول على الوثائق الرسمية، يمكنك الاطلاع عليها في: https://www.php.net/manual/en/book.curl.php

Apidog - العمل مع ملفات cURL بسهولة
Apidog هي منصة متطورة لتطوير واجهات برمجة التطبيقات تزود المستخدمين بجميع الأدوات اللازمة لطول دورة حياة واجهة برمجة التطبيقات. مع الوظائف من أدوات شهيرة مثل Postman و Insomnia، لم تعد بحاجة إلى تحميل أي تطبيقات أخرى!

استيراد أوامر cURL بسرعة إلى Apidog

يدعم Apidog المستخدمين الذين يرغبون في استيراد أوامر cURL إلى Apidog. في مشروع فارغ، انقر على زر + الأرجواني الموجود في الجزء العلوي الأيسر من نافذة Apidog، واختر استيراد cURL.

انسخ والصق أمر cURL في المربع المعروض على شاشتك.

إذا كان ذلك ناجحًا، فيجب أن تكون قادرًا الآن على عرض أمر cURL على شكل طلب واجهة برمجة التطبيقات.
توليد كود PHP باستخدام Apidog
إذا كنت بحاجة إلى مساعدة في ترميز PHP، فإن Apidog لديه ميزة توليد الكود التي يمكن أن تساعدك في ذلك.

أولاً، ابحث عن زر </> توليد الكود في أي واجهة برمجة التطبيقات أو طلب، واختر توليد كود العميل من القائمة المنسدلة.

ثم اختر PHP، وابحث عن قسم cURL. يجب أن ترى الآن الكود الناتج لـ cURL. كل ما عليك فعله هو نسخه ولصقه في بيئة التطوير المتكاملة الخاصة بك ومتابعة تطوير تطبيقك.
الخاتمة
تعمل وظيفة curl_init() في PHP على تمكينك من استرجاع البيانات من خوادم الويب باستخدام طلبات GET. هذه الوحدة الأساسية تسمح لك بالتفاعل مع واجهات برمجة التطبيقات، وتنزيل الملفات، وجمع محتوى الويب. من خلال إتقان curl_init()، يمكنك أتمتة المهام، وجمع المعلومات برمجيًا، وتوسيع وظائف تطبيقاتك PHP.
تذكر استكشاف الخيارات الواسعة التي توفرها cURL لضبط طلباتك، ومعالجة الأخطاء بشكل لطيف، وضمان التواصل الآمن. مع مرونتها وقوتها، تفتح curl_init() عالمًا من الاحتمالات لمشاريع تطوير الويب الخاصة بك.
