Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Display
Layout
Split
Unified
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Diff precision
Smart
Syntax
None
Change appearance
Process
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Loading the rest of this comparison.
Untitled diff
Created
11 years ago
Diff never expires
Clear
Export
Share
Explain
19 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
694 lines
Copy
16 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
691 lines
Copy
<?php
<?php
//phpinfo();
//phpinfo();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function error($e)
function error($e)
{
{
$html =
$html =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n".
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n".
"<html>\n".
"<html>\n".
"<head>\n".
"<head>\n".
"<style>body {font-family:Verdana; font-size:12px;}</style>\n".
"<style>body {font-family:Verdana; font-size:12px;}</style>\n".
"</head>\n".
"</head>\n".
"<body>\n".
"<body>\n".
$e."\n".
$e."\n".
"</body>\n".
"</body>\n".
"</hmtl>";
"</hmtl>";
die($html);
die($html);
}
}
////////////////////////////
////////////////////////////
function DB_connect($host, $user, $password, $db_name)
function DB_connect($host, $user, $password, $db_name)
{
{
$SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error());
$SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error());
//@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;");
//@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;");
mysql_set_charset('utf8', $SQL);
mysql_set_charset('utf8', $SQL);
@mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error());
@mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error());
GLOBAL $count_query;
GLOBAL $count_query;
$count_query++;
$count_query++;
return $SQL;
return $SQL;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function DB_query($SQL)
function DB_query($SQL)
{
{
GLOBAL $count_query;
GLOBAL $count_query;
$count_query++;
$count_query++;
$r = @mysql_query($SQL);
$r = @mysql_query($SQL);
if($r)
if($r)
{
{
return $r;
return $r;
}
}
else
else
{
{
error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';');
error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';');
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function DB_fetch($r)
function DB_fetch($r)
{
{
return @mysql_fetch_array($r);
return @mysql_fetch_array($r);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function get_city_data_by_sql($SQL_MAIN)
function get_city_data_by_sql($SQL_MAIN)
{
{
GLOBAL $main_site_data;
GLOBAL $main_site_data;
$array_id=Array();
$array_id=Array();
$res=DB_query($SQL_MAIN);
$res=DB_query($SQL_MAIN);
$array_subadministrativearea=Array();
$array_subadministrativearea=Array();
$array_administrativearea=Array();
$array_administrativearea=Array();
$array_country=Array();
$array_country=Array();
$i=0;
$i=0;
$array_iata=Array();
$array_iata=Array();
while ($data_locality=DB_fetch($res))
while ($data_locality=DB_fetch($res))
{
{
$array_id[$data_locality['id']]=array();
$array_id[$data_locality['id']]=array();
$array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1'];
$array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1'];
$array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2'];
$array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2'];
$array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3'];
$array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3'];
$array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4'];
$array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4'];
$array_iata[]=$data_locality['near_iata_1'];
$array_iata[]=$data_locality['near_iata_1'];
$array_iata[]=$data_locality['near_iata_2'];
$array_iata[]=$data_locality['near_iata_2'];
$array_iata[]=$data_locality['near_iata_3'];
$array_iata[]=$data_locality['near_iata_3'];
$array_iata[]=$data_locality['near_iata_4'];
$array_iata[]=$data_locality['near_iata_4'];
$array_id[$data_locality['id']]['locality']['id']=$data_locality['id'];
$array_id[$data_locality['id']]['locality']['id']=$data_locality['id'];
$array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName'];
$array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName'];
$array_id[$data_locality['id']]['locality']['url']=$data_locality['url'];
$array_id[$data_locality['id']]['locality']['url']=$data_locality['url'];
$array_id[$data_locality['id']]['locality']['x']=$data_locality['x'];
$array_id[$data_locality['id']]['locality']['x']=$data_locality['x'];
$array_id[$data_locality['id']]['locality']['y']=$data_locality['y'];
$array_id[$data_locality['id']]['locality']['y']=$data_locality['y'];
$array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId'];
$array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId'];
$array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;;
$array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;;
$array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId'];
$array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId'];
$array_administrativearea[$data_locality['AdministrativeAreaId']]=$i;
$array_administrativearea[$data_locality['AdministrativeAreaId']]=$i;
$array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId'];
$array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId'];
$array_country[$data_locality['CountryId']]=$i;
$array_country[$data_locality['CountryId']]=$i;
$i++;
$i++;
}
}
$tmp=array_flip($array_subadministrativearea);
$tmp=array_flip($array_subadministrativearea);
$SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
$SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp);
Saved diffs
Original text
Open file
<?php //phpinfo(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function error($e) { $html = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n". "<html>\n". "<head>\n". "<style>body {font-family:Verdana; font-size:12px;}</style>\n". "</head>\n". "<body>\n". $e."\n". "</body>\n". "</hmtl>"; die($html); } //////////////////////////// function DB_connect($host, $user, $password, $db_name) { $SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error()); //@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;"); mysql_set_charset('utf8', $SQL); @mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error()); GLOBAL $count_query; $count_query++; return $SQL; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function DB_query($SQL) { GLOBAL $count_query; $count_query++; $r = @mysql_query($SQL); if($r) { return $r; } else { error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';'); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function DB_fetch($r) { return @mysql_fetch_array($r); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_city_data_by_sql($SQL_MAIN) { GLOBAL $main_site_data; $array_id=Array(); $res=DB_query($SQL_MAIN); $array_subadministrativearea=Array(); $array_administrativearea=Array(); $array_country=Array(); $i=0; $array_iata=Array(); while ($data_locality=DB_fetch($res)) { $array_id[$data_locality['id']]=array(); $array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1']; $array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2']; $array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3']; $array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4']; $array_iata[]=$data_locality['near_iata_1']; $array_iata[]=$data_locality['near_iata_2']; $array_iata[]=$data_locality['near_iata_3']; $array_iata[]=$data_locality['near_iata_4']; $array_id[$data_locality['id']]['locality']['id']=$data_locality['id']; $array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName']; $array_id[$data_locality['id']]['locality']['url']=$data_locality['url']; $array_id[$data_locality['id']]['locality']['x']=$data_locality['x']; $array_id[$data_locality['id']]['locality']['y']=$data_locality['y']; $array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId']; $array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;; $array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId']; $array_administrativearea[$data_locality['AdministrativeAreaId']]=$i; $array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId']; $array_country[$data_locality['CountryId']]=$i; $i++; } $tmp=array_flip($array_subadministrativearea); $SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_subadministrativearea=DB_fetch($res)) { $array_subadministrativearea[$data_subadministrativearea['id']]=array(); $array_subadministrativearea[$data_subadministrativearea['id']]['name']=$data_subadministrativearea['SubAdministrativeAreaName']; $array_subadministrativearea[$data_subadministrativearea['id']]['url']=$data_subadministrativearea['url']; } $tmp=array_flip($array_administrativearea); $SQL="SELECT `id`,`AdministrativeAreaName`,`url` FROM `administrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_administrativearea=DB_fetch($res)) { $array_administrativearea[$data_administrativearea['id']]=array(); $array_administrativearea[$data_administrativearea['id']]['name']=$data_administrativearea['AdministrativeAreaName']; $array_administrativearea[$data_administrativearea['id']]['url']=$data_administrativearea['url']; } $tmp=array_flip($array_country); $SQL="SELECT `id`,`CountryName`,`url`,`CountryNameCode`,`SiteId` FROM `countries` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_country=DB_fetch($res)) { $array_country[$data_country['id']]=array(); $array_country[$data_country['id']]['name']=$data_country['CountryName']; $array_country[$data_country['id']]['code']=$data_country['CountryNameCode']; $array_country[$data_country['id']]['url']=$data_country['url']; $array_country[$data_country['id']]['siteid']=$data_country['SiteId']; } $SQL="SELECT `id`,`city_id` FROM `iata_citys` WHERE `id` IN (".implode(',', $array_iata).") LIMIT ".count($array_iata); $res=DB_query($SQL); $new_array_iata=Array(); while ($data_iata=DB_fetch($res)) { $new_array_iata[$data_iata['id']]=$data_iata['city_id']; } foreach ($array_id AS $key=>$value) { $array_id[$key]['new_iata']=array(); if (isset($new_array_iata[$array_id[$key]['iata']['1']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=$new_array_iata[$array_id[$key]['iata']['1']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['2']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=$new_array_iata[$array_id[$key]['iata']['2']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['3']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=$new_array_iata[$array_id[$key]['iata']['3']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['4']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=$new_array_iata[$array_id[$key]['iata']['4']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=0; } $array_id[$key]['iata']=$array_id[$key]['new_iata']; unset($array_id[$key]['new_iata']); $array_id[$key]['subadministrativearea']['name']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['name']; $array_id[$key]['subadministrativearea']['url']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['url']; $array_id[$key]['administrativearea']['name']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['name']; $array_id[$key]['administrativearea']['url']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['url']; $array_id[$key]['country']['name']=$array_country[$array_id[$key]['country']['id']]['name']; $array_id[$key]['country']['code']=$array_country[$array_id[$key]['country']['id']]['code']; $array_id[$key]['country']['url']=$array_country[$array_id[$key]['country']['id']]['url']; $array_id[$key]['country']['siteid']=$array_country[$array_id[$key]['country']['id']]['siteid']; $temp=Array(); $temp[]=$array_id[$key]['locality']['name']; if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp))) $temp[]=$array_id[$key]['subadministrativearea']['name']; if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp))) $temp[]=$array_id[$key]['administrativearea']['name']; $array_id[$key]['description']['short']=implode(', ', $temp); $temp=Array(); $temp[]=$array_id[$key]['locality']['name']; if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp))) $temp[]=$array_id[$key]['subadministrativearea']['name']; if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp))) $temp[]=$array_id[$key]['administrativearea']['name']; if (($array_id[$key]['country']['name']!='')&&(!in_array($array_id[$key]['country']['name'], $temp))) $temp[]=$array_id[$key]['country']['name']; unset($temp[0]); $array_id[$key]['description']['full']=implode(', ', $temp); } return $array_id; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_url_from_yandex($load_url, $count=1) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $load_url); curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');// каким браузером представляться curl_setopt($c, CURLOPT_TIMEOUT,60);// максимальное время выполнения операции в секундах $string = curl_exec($c); curl_close($c); //$string=@file_get_contents($load_url); if ((!$string)&&($count<=10)) { return get_url_from_yandex($load_url,$count+1); } else { if ($string=='') { return false; } else { return $string; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_city_data_from_geo_object($object) { GLOBAL $main_site_data; $locality=Array(); $temp=''; $temp=explode(' ',$object->GeoObject->Point->pos); $locality['pos']=Array(); $locality['pos']['x']=$temp[0]; $locality['pos']['y']=$temp[1]; $temp=''; $temp=json_encode($object->GeoObject->metaDataProperty->GeocoderMetaData->AddressDetails); $temp=str_replace("'", '`', $temp); $locality['CountryNameCode']=''; if (preg_match('/"CountryNameCode":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['CountryNameCode']=$smal_temp->CountryNameCode; } } $locality['CountryName']=''; if (preg_match('/"CountryName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['CountryName']=$smal_temp->CountryName; } } $locality['AdministrativeAreaName']=''; if (preg_match('/"AdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['AdministrativeAreaName']=$smal_temp->AdministrativeAreaName; } } $locality['SubAdministrativeAreaName']=''; if (preg_match('/"SubAdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['SubAdministrativeAreaName']=$smal_temp->SubAdministrativeAreaName; } } $locality['LocalityName']=''; if (preg_match('/"LocalityName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['LocalityName']=$smal_temp->LocalityName; } } if (($locality['LocalityName']!='')&&($object->GeoObject->metaDataProperty->GeocoderMetaData->kind=='locality')) { $array_return=Array(); $SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['CountryNameCode']); $SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `countries` SET `CountryNameCode`='".$locality['CountryNameCode']."', `CountryName`='".$locality['CountryName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1"; $res=DB_query($SQL); } $data_country=DB_fetch($res); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['AdministrativeAreaName']); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `administrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); } $data_adm_area=DB_fetch($res); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['SubAdministrativeAreaName']); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `subadministrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); } $data_sub_adm_area=DB_fetch($res); $SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['LocalityName']); $SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `cities` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaId`=".$data_sub_adm_area['id'].", `LocalityName`='".$locality['LocalityName']."', `url`='".$url."', `x`='".$locality['pos']['x']."', `y`='".$locality['pos']['y']."'"; DB_query($SQL); $SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`='".$data_sub_adm_area['id']."' LIMIT 1"; $res=DB_query($SQL); } $data_locality=DB_fetch($res); return $data_locality['id']; } else { return false; } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function toURL($str) { $tr = array( "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g","Д"=>"d", "Е"=>"e","Ё"=>"yo","Ж"=>"j","З"=>"z","И"=>"i", "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n", "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t", "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch", "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"", "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y", "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya" ); $str=strtr($str,$tr); $str=preg_replace('/[^A-Za-z]/ui', ' ', $str); $str=trim($str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str=trim($str); $str= str_replace(' ', '-', $str); $str= strtolower($str); if ($str=='') $str='-'; return $str; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DB_connect('localhost', 'root', '', 'test_routes'); $SQL="SELECT COUNT(*) AS `cnt` FROM `cities`"; $res=DB_query($SQL); $data=DB_fetch($res); $count_city=$data['cnt']; $flag=true; while ($flag) { $start_rand_limit=mt_rand('0', $count_city-1); $end_rand_limit=mt_rand('0', $count_city-1); $SQL="SELECT `CountryId`,`id` FROM `cities` LIMIT ".$start_rand_limit.",1"; $res=DB_query($SQL); $data_start=DB_fetch($res); $SQL="SELECT `CountryId`,`id` FROM `cities` LIMIT ".$end_rand_limit.",1"; $res=DB_query($SQL); $data_end=DB_fetch($res); $SQL="SELECT COUNT(*) AS `cnt` FROM `routes` WHERE `start_city_id`=".$data_start['id']." AND `end_city_id`=".$data_end['id']; $res=DB_query($SQL); $data=DB_fetch($res); if ($data['cnt']==0) { $start_id=$data_start['id']; $end_id=$data_end['id']; $flag=false; } } $SQL="SELECT * FROM `cities` WHERE `id` IN (".$start_id.",".$end_id.") LIMIT 2"; $temp=get_city_data_by_sql($SQL); $city_start=$temp[$start_id]; $city_end=$temp[$end_id]; $load_url='https://api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full'; $route_string=get_url_from_yandex($load_url, 5); preg_match_all('/project_data\[\"token\"\]\=\"([a-z0-9]*)\"/ui', $route_string,$match); $load_url='https://api-maps.yandex.ru/services/route/2.0/?lang=ru_RU&rll='.$city_start['locality']['x'].','.$city_start['locality']['y'].'~'.$city_end['locality']['x'].','.$city_end['locality']['y'].'&token='.$match[1][0]; $route_string=get_url_from_yandex($load_url, 5); if ($route_string!=false) { $json_route=json_decode($route_string); if (!isset($json_route->error->status)) { $route_lengh=round($json_route->data->features[0]->properties->RouteMetaData->Distance->value); $route_time=round($json_route->data->features[0]->properties->RouteMetaData->Duration->value); $route_bound[0][0]=$json_route->data->features[0]->properties->boundedBy[0][0]; $route_bound[0][1]=$json_route->data->features[0]->properties->boundedBy[0][1]; $route_bound[1][0]=$json_route->data->features[0]->properties->boundedBy[1][0]; $route_bound[1][1]=$json_route->data->features[0]->properties->boundedBy[1][1]; $full_route=Array(); foreach ($json_route->data->features[0]->features[0]->features as $feature) { $value = $feature->properties; $value_array=Array(); $value_array['street']=str_replace("'",' ',$value->SegmentMetaData->street); $value_array['action']=$value->SegmentMetaData->action; $value_array['angle']=$value->SegmentMetaData->angle; $value_array['length']=round($value->SegmentMetaData->Distance->value); $value_array['time']=round($value->SegmentMetaData->Duration->value); // geometry seems to be passed in a separate encoded string, providing only link to it // empty data for now $value_array['start_x_y']=$value->boundedBy[0][0].','.$feature->geometry->boundedBy[0][1]; $value_array['end_x_y']=$value->boundedBy[1][0].','.$value->properties->boundedBy[1][1]; $full_route[]=$value_array; var_export($value_array); } $point_array=Array(); foreach ($full_route AS $key=>$value) { $temp_start=explode(',',$value['start_x_y']); $temp_array[0]=$temp_start[0]; $temp_array[1]=$temp_start[1]; $temp_array[2]=$value['length']; $temp_array[3]=$value['time']; $point_array[]=$temp_array; $temp_end=explode(',',$value['end_x_y']); $end_array[0]=$temp_end[0]; $end_array[1]=$temp_end[1]; $end_array[2]=0; $end_array[3]=0; } $point_array[]=$end_array; $prev_x=$point_array[0][0]; $prev_y=$point_array[0][1]; $tmp_this_len=0; $tmp_this_time=0; $array_new_points=array(); foreach ($point_array as $value) { if (($tmp_this_len+$value[2])>2500) { $tmp[0]=$prev_x; $tmp[1]=$prev_y; $tmp[2]=$tmp_this_len; $tmp[3]=$tmp_this_time; $array_new_points[]=$tmp; $prev_x=$value[0]; $prev_y=$value[1]; $tmp_this_len=$value[2]; $tmp_this_time=$value[3]; } else { $tmp_this_len+=$value[2]; $tmp_this_time+=$value[3]; } } if (isset($array_new_points[(count($array_new_points)-1)])) { $array_new_points[(count($array_new_points)-1)][2]+=$tmp_this_len; $array_new_points[(count($array_new_points)-1)][3]+=$tmp_this_time; } $tmp[0]=$prev_x; $tmp[1]=$prev_y; $tmp[2]=0; $tmp[3]=0; $array_new_points[]=$tmp; $i=count($array_new_points)-1; while ($i>=1) { $array_new_points[$i][2]=$array_new_points[$i-1][2]; $array_new_points[$i][3]=$array_new_points[$i-1][3]; $i--; } $array_new_points[0][2]=0; $array_new_points[0][3]=0; $prev=0; $final_city_id_array=array(); $temp_len=0; $temp_time=0; foreach ($array_new_points as $value) { $temp_len+=$value[2]; $temp_time+=$value[3]; if ($string_city=get_url_from_yandex('https://geocode-maps.yandex.ru/1.x/?geocode='.$value[0].','.$value[1].'&kind=locality&results=1&spn=0.1,0.1&lang=ru_RU',20)) { $xml=simplexml_load_string($string_city); if (isset($xml->GeoObjectCollection->featureMember->GeoObject->name)) { if ($this_sity_id=get_city_data_from_geo_object($xml->GeoObjectCollection->featureMember)) { if ($prev!=$this_sity_id) { $prev=$this_sity_id; $tmp_item[0]=$this_sity_id; $tmp_item[1]=$temp_len; $tmp_item[2]=$temp_time; $final_city_id_array[]=$tmp_item; $temp_len=0; $temp_time=0; } } } } } if ($temp_len!=0) { $final_city_id_array[(count($final_city_id_array)-1)][1]+=$temp_len; $final_city_id_array[(count($final_city_id_array)-1)][2]+=$temp_time; } $city_string=array(); foreach ($final_city_id_array as $value) { $array_temp=array(); $array_temp[]=''.$value[0].''; $array_temp[]=''.$value[1].''; $array_temp[]=''.$value[2].''; $city_string[]=''.implode('<|>', $array_temp).''; unset ($array_temp); } $json_city_string=''.implode('<||>', $city_string).''; $SQL="INSERT INTO `routes` (`id`, `start_country_id`, `start_administrativearea_id`, `start_subadministrativearea_id`, `start_city_id`, `end_country_id`, `end_administrativearea_id`, `end_subadministrativearea_id`, `end_city_id`, `route_lengh`, `route_time`, `bound1x`, `bound1y`, `bound2x`, `bound2y`, add_date) VALUES (NULL, '".$city_start['country']['id']."', '".$city_start['administrativearea']['id']."', '".$city_start['subadministrativearea']['id']."', '".$city_start['locality']['id']."', '".$city_end['country']['id']."', '".$city_end['administrativearea']['id']."', '".$city_end['subadministrativearea']['id']."', '".$city_end['locality']['id']."', '".$route_lengh."', '".$route_time."', '".$route_bound[0][0]."', '".$route_bound[0][1]."', '".$route_bound[1][0]."', '".$route_bound[1][1]."', '".date('Y-m-d')."')"; DB_query($SQL); $SQL="SELECT id, start_city_id, end_city_id FROM `routes` WHERE start_city_id=".$city_start['locality']['id']." AND end_city_id=".$city_end['locality']['id']." LIMIT 1"; $res=DB_query($SQL); $data_route=DB_fetch($res); $SQL="INSERT INTO `routes_citys_points` (`id`, `json_citys`) VALUES ('".$data_route['id']."', '".$json_city_string."');"; DB_query($SQL); } } ?>
Changed text
Open file
<?php //phpinfo(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function error($e) { $html = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n". "<html>\n". "<head>\n". "<style>body {font-family:Verdana; font-size:12px;}</style>\n". "</head>\n". "<body>\n". $e."\n". "</body>\n". "</hmtl>"; die($html); } //////////////////////////// function DB_connect($host, $user, $password, $db_name) { $SQL = @mysql_connect($host, $user, $password) or error("<b>Could not connect to MySQL server:</b> ".mysql_error()); //@mysql_query("SSET CHARACTER SET utf8; SET NAMES utf8;"); mysql_set_charset('utf8', $SQL); @mysql_select_db($db_name) or error("<b>Database error:</b> ".mysql_error()); GLOBAL $count_query; $count_query++; return $SQL; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function DB_query($SQL) { GLOBAL $count_query; $count_query++; $r = @mysql_query($SQL); if($r) { return $r; } else { error("<b>Query error:</b> ".mysql_error()."<br><br>\n<b>Query:</b> ".$SQL.';'); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function DB_fetch($r) { return @mysql_fetch_array($r); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_city_data_by_sql($SQL_MAIN) { GLOBAL $main_site_data; $array_id=Array(); $res=DB_query($SQL_MAIN); $array_subadministrativearea=Array(); $array_administrativearea=Array(); $array_country=Array(); $i=0; $array_iata=Array(); while ($data_locality=DB_fetch($res)) { $array_id[$data_locality['id']]=array(); $array_id[$data_locality['id']]['iata'][1]=$data_locality['near_iata_1']; $array_id[$data_locality['id']]['iata'][2]=$data_locality['near_iata_2']; $array_id[$data_locality['id']]['iata'][3]=$data_locality['near_iata_3']; $array_id[$data_locality['id']]['iata'][4]=$data_locality['near_iata_4']; $array_iata[]=$data_locality['near_iata_1']; $array_iata[]=$data_locality['near_iata_2']; $array_iata[]=$data_locality['near_iata_3']; $array_iata[]=$data_locality['near_iata_4']; $array_id[$data_locality['id']]['locality']['id']=$data_locality['id']; $array_id[$data_locality['id']]['locality']['name']=$data_locality['LocalityName']; $array_id[$data_locality['id']]['locality']['url']=$data_locality['url']; $array_id[$data_locality['id']]['locality']['x']=$data_locality['x']; $array_id[$data_locality['id']]['locality']['y']=$data_locality['y']; $array_id[$data_locality['id']]['subadministrativearea']['id']=$data_locality['SubAdministrativeAreaId']; $array_subadministrativearea[$data_locality['SubAdministrativeAreaId']]=$i;; $array_id[$data_locality['id']]['administrativearea']['id']=$data_locality['AdministrativeAreaId']; $array_administrativearea[$data_locality['AdministrativeAreaId']]=$i; $array_id[$data_locality['id']]['country']['id']=$data_locality['CountryId']; $array_country[$data_locality['CountryId']]=$i; $i++; } $tmp=array_flip($array_subadministrativearea); $SQL="SELECT `id`,`SubAdministrativeAreaName`,`url` FROM `subadministrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_subadministrativearea=DB_fetch($res)) { $array_subadministrativearea[$data_subadministrativearea['id']]=array(); $array_subadministrativearea[$data_subadministrativearea['id']]['name']=$data_subadministrativearea['SubAdministrativeAreaName']; $array_subadministrativearea[$data_subadministrativearea['id']]['url']=$data_subadministrativearea['url']; } $tmp=array_flip($array_administrativearea); $SQL="SELECT `id`,`AdministrativeAreaName`,`url` FROM `administrativeareas` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_administrativearea=DB_fetch($res)) { $array_administrativearea[$data_administrativearea['id']]=array(); $array_administrativearea[$data_administrativearea['id']]['name']=$data_administrativearea['AdministrativeAreaName']; $array_administrativearea[$data_administrativearea['id']]['url']=$data_administrativearea['url']; } $tmp=array_flip($array_country); $SQL="SELECT `id`,`CountryName`,`url`,`CountryNameCode`,`SiteId` FROM `countries` WHERE `id` IN (".implode(',', $tmp).") LIMIT ".count($tmp); $res=DB_query($SQL); while ($data_country=DB_fetch($res)) { $array_country[$data_country['id']]=array(); $array_country[$data_country['id']]['name']=$data_country['CountryName']; $array_country[$data_country['id']]['code']=$data_country['CountryNameCode']; $array_country[$data_country['id']]['url']=$data_country['url']; $array_country[$data_country['id']]['siteid']=$data_country['SiteId']; } $SQL="SELECT `id`,`city_id` FROM `iata_citys` WHERE `id` IN (".implode(',', $array_iata).") LIMIT ".count($array_iata); $res=DB_query($SQL); $new_array_iata=Array(); while ($data_iata=DB_fetch($res)) { $new_array_iata[$data_iata['id']]=$data_iata['city_id']; } foreach ($array_id AS $key=>$value) { $array_id[$key]['new_iata']=array(); if (isset($new_array_iata[$array_id[$key]['iata']['1']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=$new_array_iata[$array_id[$key]['iata']['1']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['1']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['2']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=$new_array_iata[$array_id[$key]['iata']['2']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['2']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['3']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=$new_array_iata[$array_id[$key]['iata']['3']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['3']]=0; } if (isset($new_array_iata[$array_id[$key]['iata']['4']])) { $array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=$new_array_iata[$array_id[$key]['iata']['4']]; } else { $array_id[$key]['new_iata'][$array_id[$key]['iata']['4']]=0; } $array_id[$key]['iata']=$array_id[$key]['new_iata']; unset($array_id[$key]['new_iata']); $array_id[$key]['subadministrativearea']['name']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['name']; $array_id[$key]['subadministrativearea']['url']=$array_subadministrativearea[$array_id[$key]['subadministrativearea']['id']]['url']; $array_id[$key]['administrativearea']['name']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['name']; $array_id[$key]['administrativearea']['url']=$array_administrativearea[$array_id[$key]['administrativearea']['id']]['url']; $array_id[$key]['country']['name']=$array_country[$array_id[$key]['country']['id']]['name']; $array_id[$key]['country']['code']=$array_country[$array_id[$key]['country']['id']]['code']; $array_id[$key]['country']['url']=$array_country[$array_id[$key]['country']['id']]['url']; $array_id[$key]['country']['siteid']=$array_country[$array_id[$key]['country']['id']]['siteid']; $temp=Array(); $temp[]=$array_id[$key]['locality']['name']; if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp))) $temp[]=$array_id[$key]['subadministrativearea']['name']; if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp))) $temp[]=$array_id[$key]['administrativearea']['name']; $array_id[$key]['description']['short']=implode(', ', $temp); $temp=Array(); $temp[]=$array_id[$key]['locality']['name']; if (($array_id[$key]['subadministrativearea']['name']!='')&&(!in_array($array_id[$key]['subadministrativearea']['name'], $temp))) $temp[]=$array_id[$key]['subadministrativearea']['name']; if (($array_id[$key]['administrativearea']['name']!='')&&(!in_array($array_id[$key]['administrativearea']['name'], $temp))) $temp[]=$array_id[$key]['administrativearea']['name']; if (($array_id[$key]['country']['name']!='')&&(!in_array($array_id[$key]['country']['name'], $temp))) $temp[]=$array_id[$key]['country']['name']; unset($temp[0]); $array_id[$key]['description']['full']=implode(', ', $temp); } return $array_id; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_url_from_yandex($load_url, $count=1) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $load_url); curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');// каким браузером представляться curl_setopt($c, CURLOPT_TIMEOUT,60);// максимальное время выполнения операции в секундах $string = curl_exec($c); curl_close($c); //$string=@file_get_contents($load_url); if ((!$string)&&($count<=10)) { return get_url_from_yandex($load_url,$count+1); } else { if ($string=='') { return false; } else { return $string; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function get_city_data_from_geo_object($object) { GLOBAL $main_site_data; $locality=Array(); $temp=''; $temp=explode(' ',$object->GeoObject->Point->pos); $locality['pos']=Array(); $locality['pos']['x']=$temp[0]; $locality['pos']['y']=$temp[1]; $temp=''; $temp=json_encode($object->GeoObject->metaDataProperty->GeocoderMetaData->AddressDetails); $temp=str_replace("'", '`', $temp); $locality['CountryNameCode']=''; if (preg_match('/"CountryNameCode":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['CountryNameCode']=$smal_temp->CountryNameCode; } } $locality['CountryName']=''; if (preg_match('/"CountryName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['CountryName']=$smal_temp->CountryName; } } $locality['AdministrativeAreaName']=''; if (preg_match('/"AdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['AdministrativeAreaName']=$smal_temp->AdministrativeAreaName; } } $locality['SubAdministrativeAreaName']=''; if (preg_match('/"SubAdministrativeAreaName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['SubAdministrativeAreaName']=$smal_temp->SubAdministrativeAreaName; } } $locality['LocalityName']=''; if (preg_match('/"LocalityName":"([^\"]+)"/ui', $temp, $matches)) { if (isset($matches[0])) { $smal_temp=json_decode('{'.$matches[0].'}'); $locality['LocalityName']=$smal_temp->LocalityName; } } if (($locality['LocalityName']!='')&&($object->GeoObject->metaDataProperty->GeocoderMetaData->kind=='locality')) { $array_return=Array(); $SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['CountryNameCode']); $SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `countries` WHERE `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `countries` SET `CountryNameCode`='".$locality['CountryNameCode']."', `CountryName`='".$locality['CountryName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `countries` WHERE `CountryNameCode`='".$locality['CountryNameCode']."' LIMIT 1"; $res=DB_query($SQL); } $data_country=DB_fetch($res); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['AdministrativeAreaName']); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `administrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `administrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaName`='".$locality['AdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); } $data_adm_area=DB_fetch($res); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['SubAdministrativeAreaName']); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `subadministrativeareas` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."', `url`='".$url."'"; DB_query($SQL); $SQL="SELECT `id` FROM `subadministrativeareas` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaName`='".$locality['SubAdministrativeAreaName']."' LIMIT 1"; $res=DB_query($SQL); } $data_sub_adm_area=DB_fetch($res); $SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." LIMIT 1"; $res=DB_query($SQL); if (mysql_num_rows($res)==0) { $url=toURL($locality['LocalityName']); $SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i=1; $temp_url=$url; while (mysql_num_rows($res)!=0) { $url=$temp_url.'-'.$i; $SQL="SELECT `id` FROM `cities` WHERE `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`=".$data_sub_adm_area['id']." AND `url`='".$url."' LIMIT 1"; $res=DB_query($SQL); $i++; } $SQL="INSERT INTO `cities` SET `CountryId`=".$data_country['id'].", `AdministrativeAreaId`=".$data_adm_area['id'].", `SubAdministrativeAreaId`=".$data_sub_adm_area['id'].", `LocalityName`='".$locality['LocalityName']."', `url`='".$url."', `x`='".$locality['pos']['x']."', `y`='".$locality['pos']['y']."'"; DB_query($SQL); $SQL="SELECT `id` FROM `cities` WHERE `LocalityName`='".$locality['LocalityName']."' AND `CountryId`=".$data_country['id']." AND `AdministrativeAreaId`=".$data_adm_area['id']." AND `SubAdministrativeAreaId`='".$data_sub_adm_area['id']."' LIMIT 1"; $res=DB_query($SQL); } $data_locality=DB_fetch($res); return $data_locality['id']; } else { return false; } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function toURL($str) { $tr = array( "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g","Д"=>"d", "Е"=>"e","Ё"=>"yo","Ж"=>"j","З"=>"z","И"=>"i", "Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n", "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t", "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch", "Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"", "Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"j", "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y", "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya" ); $str=strtr($str,$tr); $str=preg_replace('/[^A-Za-z]/ui', ' ', $str); $str=trim($str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str= str_replace(' ', ' ', $str); $str=trim($str); $str= str_replace(' ', '-', $str); $str= strtolower($str); if ($str=='') $str='-'; return $str; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DB_connect('localhost', 'root', '', 'test_routes'); $SQL="SELECT COUNT(*) AS `cnt` FROM `cities`"; $res=DB_query($SQL); $data=DB_fetch($res); $count_city=$data['cnt']; $flag=true; while ($flag) { $start_rand_limit=mt_rand('0', $count_city-1); $end_rand_limit=mt_rand('0', $count_city-1); $SQL="SELECT `CountryId`,`id` FROM `cities` LIMIT ".$start_rand_limit.",1"; $res=DB_query($SQL); $data_start=DB_fetch($res); $SQL="SELECT `CountryId`,`id` FROM `cities` LIMIT ".$end_rand_limit.",1"; $res=DB_query($SQL); $data_end=DB_fetch($res); $SQL="SELECT COUNT(*) AS `cnt` FROM `routes` WHERE `start_city_id`=".$data_start['id']." AND `end_city_id`=".$data_end['id']; $res=DB_query($SQL); $data=DB_fetch($res); if ($data['cnt']==0) { $start_id=$data_start['id']; $end_id=$data_end['id']; $flag=false; } } $SQL="SELECT * FROM `cities` WHERE `id` IN (".$start_id.",".$end_id.") LIMIT 2"; $temp=get_city_data_by_sql($SQL); $city_start=$temp[$start_id]; $city_end=$temp[$end_id]; $load_url='https://api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full'; $route_string=get_url_from_yandex($load_url, 5); preg_match_all('/project_data\[\"token\"\]\=\"([a-z0-9]*)\"/ui', $route_string,$match); $load_url='https://api-maps.yandex.ru/services/route/2.0/?lang=ru_RU&rll='.$city_start['locality']['x'].','.$city_start['locality']['y'].'~'.$city_end['locality']['x'].','.$city_end['locality']['y'].'&token='.$match[1][0]; $route_string=get_url_from_yandex($load_url, 5); if ($route_string!=false) { $json_route=json_decode($route_string); if (!isset($json_route->error->status)) { $coords = $json_route->data->features[0]->features[0]->properties->encodedCoordinates; $key = 'jNr34oE0'; $curl_decoder = curl_init(); curl_setopt($curl_decoder, CURLOPT_URL, 'http://wotgame.ninja/api/$key/decode'); curl_setopt($curl_decoder, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl_decoder, CURLOPT_POST, true); curl_setopt($curl_decoder, CURLOPT_POSTFIELDS, "coord_string=$coords"); $decoded_coords = json_decode(curl_exec($curl_decoder)); curl_close($curl_decoder); $route_lengh=round($json_route->data->features[0]->properties->RouteMetaData->Distance->value); $route_time=round($json_route->data->features[0]->properties->RouteMetaData->Duration->value); $route_bound[0][0]=$json_route->data->features[0]->properties->boundedBy[0][0]; $route_bound[0][1]=$json_route->data->features[0]->properties->boundedBy[0][1]; $route_bound[1][0]=$json_route->data->features[0]->properties->boundedBy[1][0]; $route_bound[1][1]=$json_route->data->features[0]->properties->boundedBy[1][1]; $full_route=Array(); foreach ($json_route->data->features[0]->features[0]->features as $feature) { $value = $feature->properties; $value_array=Array(); $value_array['street']=str_replace("'",' ',$value->SegmentMetaData->street); $value_array['action']=$value->SegmentMetaData->action; $value_array['angle']=$value->SegmentMetaData->angle; $value_array['length']=round($value->SegmentMetaData->Distance->value); $value_array['time']=round($value->SegmentMetaData->Duration->value); $lodIndex = $feature->geometry->geometries[0]->lodIndex; $value_array['start_x_y'] = implode(',', $decoded_coords[$lodIndex]); $value_array['end_x_y'] = implode(',', $decoded_coords[$lodIndex+1]); $full_route[]=$value_array; } $point_array=Array(); foreach ($full_route AS $key=>$value) { $temp_start=explode(',',$value['start_x_y']); $temp_array[0]=$temp_start[0]; $temp_array[1]=$temp_start[1]; $temp_array[2]=$value['length']; $temp_array[3]=$value['time']; $point_array[]=$temp_array; $temp_end=explode(',',$value['end_x_y']); $end_array[0]=$temp_end[0]; $end_array[1]=$temp_end[1]; $end_array[2]=0; $end_array[3]=0; } $point_array[]=$end_array; $prev_x=$point_array[0][0]; $prev_y=$point_array[0][1]; $tmp_this_len=0; $tmp_this_time=0; $array_new_points=array(); foreach ($point_array as $value) { if (($tmp_this_len+$value[2])>2500) { $tmp[0]=$prev_x; $tmp[1]=$prev_y; $tmp[2]=$tmp_this_len; $tmp[3]=$tmp_this_time; $array_new_points[]=$tmp; $prev_x=$value[0]; $prev_y=$value[1]; $tmp_this_len=$value[2]; $tmp_this_time=$value[3]; } else { $tmp_this_len+=$value[2]; $tmp_this_time+=$value[3]; } } if (isset($array_new_points[(count($array_new_points)-1)])) { $array_new_points[(count($array_new_points)-1)][2]+=$tmp_this_len; $array_new_points[(count($array_new_points)-1)][3]+=$tmp_this_time; } $tmp[0]=$prev_x; $tmp[1]=$prev_y; $tmp[2]=0; $tmp[3]=0; $array_new_points[]=$tmp; $i=count($array_new_points)-1; while ($i>=1) { $array_new_points[$i][2]=$array_new_points[$i-1][2]; $array_new_points[$i][3]=$array_new_points[$i-1][3]; $i--; } $array_new_points[0][2]=0; $array_new_points[0][3]=0; $prev=0; $final_city_id_array=array(); $temp_len=0; $temp_time=0; foreach ($array_new_points as $value) { $temp_len+=$value[2]; $temp_time+=$value[3]; if ($string_city=get_url_from_yandex('https://geocode-maps.yandex.ru/1.x/?geocode='.$value[0].','.$value[1].'&kind=locality&results=1&spn=0.1,0.1&lang=ru_RU',20)) { $xml=simplexml_load_string($string_city); if (isset($xml->GeoObjectCollection->featureMember->GeoObject->name)) { if ($this_sity_id=get_city_data_from_geo_object($xml->GeoObjectCollection->featureMember)) { if ($prev!=$this_sity_id) { $prev=$this_sity_id; $tmp_item[0]=$this_sity_id; $tmp_item[1]=$temp_len; $tmp_item[2]=$temp_time; $final_city_id_array[]=$tmp_item; $temp_len=0; $temp_time=0; } } } } } if ($temp_len!=0) { $final_city_id_array[(count($final_city_id_array)-1)][1]+=$temp_len; $final_city_id_array[(count($final_city_id_array)-1)][2]+=$temp_time; } $city_string=array(); foreach ($final_city_id_array as $value) { $array_temp=array(); $array_temp[]=''.$value[0].''; $array_temp[]=''.$value[1].''; $array_temp[]=''.$value[2].''; $city_string[]=''.implode('<|>', $array_temp).''; unset ($array_temp); } $json_city_string=''.implode('<||>', $city_string).''; $SQL="INSERT INTO `routes` (`id`, `start_country_id`, `start_administrativearea_id`, `start_subadministrativearea_id`, `start_city_id`, `end_country_id`, `end_administrativearea_id`, `end_subadministrativearea_id`, `end_city_id`, `route_lengh`, `route_time`, `bound1x`, `bound1y`, `bound2x`, `bound2y`, add_date) VALUES (NULL, '".$city_start['country']['id']."', '".$city_start['administrativearea']['id']."', '".$city_start['subadministrativearea']['id']."', '".$city_start['locality']['id']."', '".$city_end['country']['id']."', '".$city_end['administrativearea']['id']."', '".$city_end['subadministrativearea']['id']."', '".$city_end['locality']['id']."', '".$route_lengh."', '".$route_time."', '".$route_bound[0][0]."', '".$route_bound[0][1]."', '".$route_bound[1][0]."', '".$route_bound[1][1]."', '".date('Y-m-d')."')"; DB_query($SQL); $SQL="SELECT id, start_city_id, end_city_id FROM `routes` WHERE start_city_id=".$city_start['locality']['id']." AND end_city_id=".$city_end['locality']['id']." LIMIT 1"; $res=DB_query($SQL); $data_route=DB_fetch($res); $SQL="INSERT INTO `routes_citys_points` (`id`, `json_citys`) VALUES ('".$data_route['id']."', '".$json_city_string."');"; DB_query($SQL); } } ?>
Find difference