Is it possible to call multiple PHP scripts in parallel from a single PHP script?
To call multiple PHP scripts in parallel from a single PHP script, you can use PHP's `curl_multi_init()` function to send multiple HTTP requests concurrently. This allows you to execute multiple scripts simultaneously and handle their responses asynchronously.
<?php
// List of URLs to call in parallel
$urls = [
'http://example.com/script1.php',
'http://example.com/script2.php',
'http://example.com/script3.php',
];
// Initialize curl multi handle
$mh = curl_multi_init();
// Create individual curl handles for each URL
$ch = [];
foreach ($urls as $url) {
$ch[$url] = curl_init($url);
curl_setopt($ch[$url], CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch[$url]);
}
// Execute multiple requests in parallel
$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// Retrieve and handle responses
foreach ($urls as $url) {
$response = curl_multi_getcontent($ch[$url]);
// Handle response for each script
echo $response;
curl_multi_remove_handle($mh, $ch[$url]);
curl_close($ch[$url]);
}
// Close the multi handle
curl_multi_close($mh);
?>