In the context of PHP, what are some best practices for handling server availability checks to prevent script blockage?

When handling server availability checks in PHP, it is important to implement timeouts and error handling to prevent script blockage. One way to achieve this is by using the cURL library, which allows you to set a timeout for the request and catch any errors that may occur during the process.

// Initialize cURL session
$ch = curl_init();

// Set the URL to check
curl_setopt($ch, CURLOPT_URL, 'http://example.com');

// Set a timeout for the request (in seconds)
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

// Execute the request
$response = curl_exec($ch);

// Check for errors
if(curl_errno($ch)) {
    // Handle the error here
    echo 'Error: ' . curl_error($ch);
}

// Close cURL session
curl_close($ch);