Utilizing cURL to ascertain website status poses a challenge when striving for performance optimization. While the provided code snippet serves its purpose, it encounters performance limitations by downloading the entire web page.
To enhance performance, it's crucial to retrieve only the necessary information, namely the HTTP response code. This can be achieved by:
<code class="php">if(!$url || !is_string($url) || ! preg_match('/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\/.*)?$/i', $url)){ return false; } curl_setopt($ch, CURLOPT_HEADER , true); // we want headers curl_setopt($ch, CURLOPT_NOBODY , true); // we don't need body</code>
For comprehensive details on obtaining the URL status code, refer to:
Putting it all together, the optimized code becomes:
<code class="php">$url = 'http://www.example.com'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, true); // we want headers curl_setopt($ch, CURLOPT_NOBODY, true); // we don't need body curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT,10); $output = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo 'HTTP code: ' . $httpcode;</code>
By applying these techniques, the performance of your HTTP code retrieval process will see significant improvements.
The above is the detailed content of How to Optimize HTTP Code Retrieval in PHP with cURL?. For more information, please follow other related articles on the PHP Chinese website!