Home >Backend Development >PHP Tutorial >Why is file_get_contents() Failing with 'HTTP request failed!' and How Can I Fix It Using cURL?
When attempting to retrieve data from a URL using PHP's file_get_contents() function, you may encounter the error "failed to open stream: HTTP request failed!". This issue arises when PHP encounters difficulties executing the HTTP request to the specified URL.
One potential cause is the presence of multiple "http://" prefixes in the URL you're trying to access. Consider removing the redundant prefix to see if it resolves the issue.
However, if the issue persists despite using a valid URL, it's advisable to try an alternative solution. One method that has proven effective is employing the cURL library.
Here's an example code snippet using cURL:
<?php $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, 'http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv'); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name'); $query = curl_exec($curl_handle); curl_close($curl_handle); ?>
By using cURL, you can handle HTTP requests more reliably, often resolving the problem of failed requests experienced with file_get_contents().
The above is the detailed content of Why is file_get_contents() Failing with 'HTTP request failed!' and How Can I Fix It Using cURL?. For more information, please follow other related articles on the PHP Chinese website!