How can one efficiently skip over timeouts when retrieving data using file_get_contents() in a loop?

When retrieving data using file_get_contents() in a loop, timeouts can cause delays or interruptions in the data retrieval process. To efficiently skip over timeouts, you can set a timeout limit for each individual request and catch any timeout errors using a try-catch block. By handling timeouts gracefully, you can continue with the loop iteration without being blocked by timeouts.

$urls = array("http://example.com/page1", "http://example.com/page2", "http://example.com/page3");
$timeout = 10; // Timeout limit in seconds

foreach ($urls as $url) {
    try {
        $data = file_get_contents($url, false, stream_context_create(array('http' => array('timeout' => $timeout))));
        // Process the retrieved data
    } catch (Exception $e) {
        // Handle timeout error
        echo "Timeout occurred for URL: " . $url . "\n";
        continue; // Skip to the next iteration
    }
}