Menggunakan cURL untuk memastikan status tapak web menimbulkan cabaran apabila berusaha untuk pengoptimuman prestasi. Walaupun coretan kod yang disediakan memenuhi tujuannya, ia menghadapi had prestasi dengan memuat turun keseluruhan halaman web.
Untuk meningkatkan prestasi, adalah penting untuk mendapatkan hanya maklumat yang diperlukan, iaitu HTTP kod tindak balas. Ini boleh dicapai dengan:
<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>
Untuk butiran komprehensif tentang mendapatkan kod status URL, rujuk:
Menggabungkan semuanya, kod yang dioptimumkan menjadi:
<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>
Dengan menggunakan teknik ini, prestasi proses mendapatkan semula kod HTTP anda akan melihat peningkatan yang ketara.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pengambilan Kod HTTP dalam PHP dengan cURL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!