What are best practices for error handling and debugging in PHP scripts that interact with external websites?

When interacting with external websites in PHP scripts, it is important to implement proper error handling and debugging techniques to ensure smooth execution and identify any issues that may arise. One best practice is to use try-catch blocks to catch and handle any exceptions that occur during the interaction with the external website. Additionally, logging errors to a file or outputting them for debugging purposes can help in identifying and resolving any issues that may occur.

try {
    // Code to interact with external website
    $response = file_get_contents('http://example.com/api/data');
    
    // Check for errors
    if ($response === false) {
        throw new Exception('Error fetching data from external website');
    }
    
    // Process the response
    // ...
    
} catch (Exception $e) {
    // Log the error to a file
    error_log('Error: ' . $e->getMessage(), 3, 'error.log');
    
    // Output the error for debugging purposes
    echo 'An error occurred: ' . $e->getMessage();
}