Файл: __system/parser/ip_country.php
Строк: 25
<?php
include '../../__core/PDO_connect.inc'; # подключение к PDO
$site_h = $db->exec("TRUNCATE TABLE `ip_country`");
//переменная содержащая время обновления базы
$GLOBALS['last_mod']='';
//открываем сеанс curl
$ch = curl_init('http://www.logofon.ru/xml/ips.xml');
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//функция обратного вызова, которая будет проверять заголовки
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
//получение данных
$xml_data = curl_exec($ch);
//закрываем curl
curl_close($ch);
//функция обратного вызова, ищет Last-Modified
function curlHeaderCallback($ch, $header){
//чекаем Last-Modified
$s = explode(': ', $header, 2);
if($s[0] == 'Last-Modified'){$GLOBALS['last_mod'] = trim($s[1]);}
return strlen($header);
}
/*Имея $GLOBALS['last_mod'] в таком виде: Mon, 07 Dec 2009 21:43:14 GMT
мы можем проверять актуальность нашей базы, чтобы не обновляться лишний раз
для справки: чтобы получить timestamp надо сделать так
echo strtotime($GLOBALS['last_mod']);
*/
$xml=simplexml_load_string($xml_data);
foreach($xml->operator as $opsos){
$name=$opsos['name'];
$country=$opsos['country'];
$coun=$opsos['tld'];
$id=$opsos['id'];
$site_h = $db->exec("INSERT INTO `ip_country` (`operator`,`country`,`coun`,`id`) VALUES ('$name','$country','$coun','$id')");
}
?>