شرح الـ cURL كما لم تعرفه من قبل

x32x01
  • بواسطة x32x01 ||
💡 شرح الـ cURL كما لم تعرفه من قبل - السر وراء الـ Multiple Requests ⚡
في عالم البرمجة، خصوصًا لما تتعامل مع الـ APIs، أكيد سمعت عن أداة قوية اسمها cURL. لكن هل كنت تعرف إنها بتقدر تبعت طلبات متعددة في نفس الوقت (Multiple Requests)؟ 😎
خلينا نفهم كل حاجة بالتفصيل 👇



يعني إيه cURL أصلاً؟ 🧠

الـ cURL هي أداة ومكتبة مفتوحة المصدر بتسمحلك تبعت طلبات HTTP/HTTPS لأي سيرفر خارجي من خلال الكود.
ببساطة، تقدر تجيب بيانات من موقع، أو تبعت بيانات لسيرفر، أو تتعامل مع APIs بكل سهولة.

💻 بتستخدمها في لغات كتير زي:
  • PHP (الأشهر في التعامل مع APIs)
  • Python
  • JavaScript (Node.js)
  • C وC++ وغيرهم

وفي PHP بالذات، تعتبر cURL الحل السهل والاحترافي لإرسال واستقبال البيانات.



ليه نستخدم cURL؟ 🚀

  1. سهلة جدًا وتوفر دوال جاهزة للتعامل مع الطلبات.
  2. تقدر تتحكم في كل تفاصيل الطلب (Headers, Cookies, Timeout...).
  3. بتدعم الاتصال المشفر HTTPS.
  4. والأهم... إنها سريعة جدًا وبتدعم Multiple Requests! ⚡



المشكلة اللي بتحلها Multiple Requests 🧩


لو عندك 10 طلبات API مثلًا، والطريقة العادية (loop + curl_exec) هتخلي كل طلب يستنى اللي قبله يخلص ⏳
يعني الأداء هيكون بطيء جدًا وممكن كمان يحصل timeout.

لكن مع cURL Multi Interface، كل الطلبات بتتبعت في نفس الوقت! 🔥
وده معناه سرعة أعلى، وأداء أفضل، وتجربة مستخدم أنعم بكثير.



مثال عملي مبسط على Multiple Requests​

PHP:
$urls = [
    "https://api.example.com/data1",
    "https://api.example.com/data2",
    "https://api.example.com/data3"
];

$multiCurl = curl_multi_init();
$channels = [];

foreach ($urls as $url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_multi_add_handle($multiCurl, $ch);
    $channels[] = $ch;
}

// تنفيذ كل الطلبات في وقت واحد
$running = null;
do {
    curl_multi_exec($multiCurl, $running);
} while ($running);

// قراءة النتائج
foreach ($channels as $ch) {
    $response = curl_multi_getcontent($ch);
    echo $response;
    curl_multi_remove_handle($multiCurl, $ch);
}

curl_multi_close($multiCurl);



إمتى تستخدم Multiple Requests؟ ⏰

  • لو عندك أكتر من API endpoint محتاج تتعامل معاهم في نفس الوقت.
  • لو التطبيق بتاعك بيعتمد على سرعة الاستجابة (زي Dashboards أو Web Scrapers).
  • لما تكون بتجلب بيانات كتير من سيرفرات مختلفة.
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
847
x32x01
x32x01
x32x01
الردود
0
المشاهدات
545
x32x01
x32x01
x32x01
الردود
0
المشاهدات
880
x32x01
x32x01
x32x01
الردود
0
المشاهدات
978
x32x01
x32x01
x32x01
الردود
0
المشاهدات
183
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,104
المشاركات
2,310
أعضاء أكتب كود
516
أخر عضو
Mohammed
عودة
أعلى