Jeśli łączysz się z serwerem, możesz uzyskać z niego kod powrotu, w przeciwnym razie zawiedzie, a otrzymasz 0. Jeśli więc spróbujesz połączyć się z "www.google.com/lksdfk", otrzymasz kod powrotu 400, jeśli przejdziesz bezpośrednio do google.com, otrzymasz 302 (a następnie 200, jeśli prześlesz do następnej strony ... cóż, zrobię to, ponieważ przekazuje dalej do google.com.br, więc możesz nie weź to), a jeśli przejdziesz do "googlecom", dostaniesz 0 (host nie zostanie znaleziony), więc przy ostatnim nie ma nikogo, kto by odesłał kod.
Testowane przy użyciu poniższego kodu.
<?php
$html_brand = "www.google.com";
$ch = curl_init();
$options = array(
CURLOPT_URL => $html_brand,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode != 200){
echo "Return code is {$httpCode} \n"
.curl_error($ch);
} else {
echo "<pre>".htmlspecialchars($response)."</pre>";
}
curl_close($ch);
Również thx dla reflending followlocation też, czasami dostaję 301, który jest problemem przekierowującym. – Ardeus
To dziwne, chociaż odpowiedź $ ma zawartość html, ale kod $ http zawsze zwraca 0, a curl_error ma wartość null. co mogło pójść nie tak. Dołączam tylko returntransfer, nagłówek (false), followlocation tylko w ustawieniu. – Ardeus
bardzo przydatne! Dziękuję Ci bardzo. –