URL, które nie są pobierane przez file_get_contents, ponieważ ich serwer sprawdza, czy wniosek pochodzą z przeglądarki lub dowolnego skryptu. Jeśli znaleźli żądanie skryptu, po prostu wyłączają zawartość strony.
Tak, więc muszę złożyć wniosek podobny do żądania przeglądarki. Więc użyłem następującego kodu, aby uzyskać zawartość drugiego adresu URL. Może być inny dla różnych serwerów internetowych. Ponieważ mogą prowadzić różne kontrole.
Mimo to nie próbuj używać następującego kodu! Jeśli masz szczęście, to może ci pomóc!
function getUrlContent($url) {
fopen("cookies.txt", "w");
$parts = parse_url($url);
$host = $parts['host'];
$ch = curl_init();
$header = array('GET /1575051 HTTP/1.1',
"Host: {$host}",
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language:en-US,en;q=0.8',
'Cache-Control:max-age=0',
'Connection:keep-alive',
'Host:adfoc.us',
'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36',
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = "http://adfoc.us/1575051";
$html = getUrlContent($url);
Dziękuję wszystkim za wskazówki.
Więc co tak naprawdę brzmi drugi adres URL? Czy otrzymujesz jakieś komunikaty o błędach? –
Co masz na myśli mówiąc "nie działa"? –
proszę otworzyć oba adresy URL w przeglądarce. Obie powracające strony HTML. – Parixit