Я запрашивал файл kml через cron с сайта https nasa.gov. Он работал годами и только сейчас начал терпеть неудачу. Я не получаю никаких ошибок curl — запрос просто истекает. Что-то должно было измениться с сайтом НАСА.
$curl_connection =
curl_init("http://firms.modaps.eosdis.nasa.gov/active_fire/kml/USA_contiguous_and_Hawaii_24h.kml");
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $curl_connection, CURLOPT_SSL_VERIFYHOST, 0);
//perform our request
$string = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
Что-то должно было измениться с сайтом НАСА.
Похоже, они сейчас используют HTTPS:
$ curl http://firms.modaps.eosdis.nasa.gov/active_fire/kml/USA_contiguous_and_Hawaii_24h.kml
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://firms.modaps.eosdis.nasa.gov/active_fire/kml/USA_contiguous_and_Hawaii_24h.kml">here</a>.</p>
</body></html>
Все эти годы вы использовали эти данные без гарантий подлинности 🙂
Это может быть полезно для вас: Как сказать curl следовать HTTP-перенаправлениям?.
URL-адрес, возможно, тоже изменился. Но это упражнение оставлено читателю.
Других решений пока нет …