السلام عليكم ورحمة الله تعالى وبركاته
وجدت كلاس مفيد جدا في github، يسهل عليك عمل Multithreading من خلال مكتبة cURL في لغة PHP..
هذا هو الكلاس :
كيفية الإستخدام ؟
نقوم بحفظ الكلاس في ملف ما (ثم نقوم بتضمينه من خلال include) أو نضعه في داخل السكريبت مباشرة..
<?php
include "parallelcurl.php";
وبعدين نعمل مصفوفة نضع فيها الـ Options الخاصة بالـ cURL.
$curl_options = array (
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0',
CURLOPT_RETURNTRANSFER => 1
);
ثم نقوم بإنشاء كائن جديد من الكلاس ParallelCurl.. ونضع عدد الـThreads ثم المصفوفة التي فيها الـOptions تبع cURL.
$curl = new ParallelCurl (5, $curl_options);
ثم نستدعي الدالة startRequest الموجودة داخل الكلاس، ونمرر لها الرابط (URL) وإسم الدالة التي يتم إستدعائها بعد نهاية كل Request.
$curl->startRequest ("
https://arabia.io ", 'on_request_done');
ثم نستدعي الدالة finishAllRequests والتي تقوم بالإنتظار لحين إنتهاء عمل كل الـThreads.
$curl->finishAllRequests ();
وأخير الدالة on_request_done والتي يتم إستدعائها بعد نهاية كل Request.
function on_request_done ($content, $url, $ch, $search) {
echo $content;
}
لمشاهدة مثال عن السكريبت
التعليقات