- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
$link = 'http://www.logofon.ru/xml/ips.xml';
$file = win_to_utf(file_get_contents($link));
$file = trim(substr((substr($file,0,strripos($file,'</operators>'))),(stripos($file,'<operators>') + 11)));
#echo substr_count($file,'<operator').'<br />';
#preg_match_all('|\<operator(.*)\>(.*)\<\/operator\>|sUu',$file,$res);
#array_dump($res);
preg_match_all('|\<operator id="([0-9]*)" name="([[:space:]a-zA-Zа-яА-ЯёЁ0-9-(){}_.:]*)" label="([[:space:]a-zA-Z0-9]*)" tld="([a-zA-Z0-9]*)" country="([[:space:]a-zA-Zа-яА-Я0-9-(){}_.]*)" publish="([0-9]*)"\>(.*)\<\/operator\>|Usu',$file,$result);
//-- Количество операторов
$count_oper = count($result[0]);
//-- Массив операторов
$operators = array();
//-- Запускаем цикл
for($i = 0;$i < $count_oper; $i ++)
{
//-- Массив текущего оператора
$operators[$i] = array();
$operators[$i]['id'] = $result[1][$i];
$operators[$i]['name'] = $result[2][$i];
#$operators[$i]['label'] = $result[3][$i];
$operators[$i]['tld'] = $result[4][$i];
$operators[$i]['country'] = $result[5][$i];
//-- Создаем базы IP
$operators[$i]['ip'] = array();
preg_match_all('|\<range ip1="([0-9]{10})" ip2="([0-9]{10})" mode="([0-9]*)" \/\>|Usu',$result[7][$i],$result2);
#echo '<b>#'.($i + 1).'.</b>'.htmlspecialchars($result[7][$i]).'<br />';
#array_dump($result2);
//-- Количество диапазанов для текущего опера
$count_ip = count($result2[0]);
//-- Еще один цикл
for($j = 0;$j < $count_ip; $j ++)
{
query("INSERT INTO `$db[prefix]ips` SET `name`='{$operators[$i]['name']}',`id_op`='{$operators[$i]['id']}',`country`='{$operators[$i]['country']}',`tld`='{$operators[$i]['tld']}',`ip1`='{$result2[1][$j]}',`ip2`='{$result2[2][$j]}' ")or my_error();
# $operators[$i]['ip'][$j] = array($result2[1][$j],$result2[2][$j]);
#echo long2ip($result2[1][$j]).' --- '.long2ip($result2[2][$j]).'<br />';
}
}
echo 'Операторов после : <b>'.($count_op_after = mysql_num_rows(query("SELECT COUNT(*) FROM `$db[prefix]ips` GROUP BY `id_op` "))).'</b><br />';
echo 'Диапазонов после : <b>'.($count_di_after = mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]ips` "),0)).'</b><br />';