220 lines
5.1 KiB
PHP
Executable File
220 lines
5.1 KiB
PHP
Executable File
<?php
|
|
ini_set( 'display_errors', 0 );
|
|
$_SERVER['SERVER_NAME']='v.yurecnt.ru';
|
|
require_once('/home/cloud/core/set/v.yurecnt.ru.php');
|
|
require_once('/home/cloud/core/api/php/db.php');
|
|
require_once('/home/cloud/core/api/php/json.php');
|
|
|
|
|
|
function html_to_obj($html) {
|
|
$dom = new DOMDocument();
|
|
// $dom->loadHTML($html);
|
|
@$dom->loadHTML(mb_convert_encoding(@$html, 'HTML-ENTITIES', 'UTF-8'));
|
|
return element_to_obj($dom->documentElement);
|
|
}
|
|
|
|
function element_to_obj($element) {
|
|
@$obj = array( "tag" => @$element->tagName );
|
|
foreach (@$element->attributes as $attribute) {
|
|
$obj[$attribute->name] = $attribute->value;
|
|
}
|
|
foreach ($element->childNodes as $subElement) {
|
|
if ($subElement->nodeType == XML_TEXT_NODE) {
|
|
$obj["html"] = $subElement->wholeText;
|
|
}
|
|
else {
|
|
$obj["children"][] = element_to_obj($subElement);
|
|
}
|
|
}
|
|
return $obj;
|
|
}
|
|
|
|
|
|
function generate_password($number)
|
|
{$arr = array('a','b','c','d','e','f', 'g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','z','1','2','3','4','5','6','7','8','9','0');
|
|
$pass = "";
|
|
for($i = 0; $i < $number; $i++){
|
|
$index = rand(0, count($arr) - 1);
|
|
$pass .= $arr[$index];}
|
|
return $pass;}
|
|
|
|
|
|
$a=file_get_contents('nix.xml');
|
|
|
|
|
|
/*
|
|
$xml = simplexml_load_string($a, "SimpleXMLElement", LIBXML_NOCDATA);
|
|
$json = json_encode($xml);
|
|
$array = json_decode($json,TRUE);
|
|
print_r ($array);
|
|
*/
|
|
|
|
function XMLtoArray($xml) {
|
|
$previous_value = libxml_use_internal_errors(true);
|
|
$dom = new DOMDocument('1.0', 'UTF-8');
|
|
$dom->preserveWhiteSpace = false;
|
|
$dom->loadXml($xml);
|
|
libxml_use_internal_errors($previous_value);
|
|
if (libxml_get_errors()) {
|
|
return [];
|
|
}
|
|
return DOMtoArray($dom);
|
|
}
|
|
|
|
function DOMtoArray($root) {
|
|
$result = array();
|
|
|
|
if ($root->hasAttributes()) {
|
|
$attrs = $root->attributes;
|
|
foreach ($attrs as $attr) {
|
|
$result['@attributes'][$attr->name] = $attr->value;
|
|
}
|
|
}
|
|
|
|
if ($root->hasChildNodes()) {
|
|
$children = $root->childNodes;
|
|
if ($children->length == 1) {
|
|
$child = $children->item(0);
|
|
if (in_array($child->nodeType,[XML_TEXT_NODE,XML_CDATA_SECTION_NODE])) {
|
|
$result['_value'] = $child->nodeValue;
|
|
return count($result) == 1
|
|
? $result['_value']
|
|
: $result;
|
|
}
|
|
|
|
}
|
|
$groups = array();
|
|
foreach ($children as $child) {
|
|
if (!isset($result[$child->nodeName])) {
|
|
$result[$child->nodeName] = DOMtoArray($child);
|
|
} else {
|
|
if (!isset($groups[$child->nodeName])) {
|
|
$result[$child->nodeName] = array($result[$child->nodeName]);
|
|
$groups[$child->nodeName] = 1;
|
|
}
|
|
$result[$child->nodeName][] = DOMtoArray($child);
|
|
}
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
$xml = $a;
|
|
$b=XMLtoArray($xml);
|
|
$tovar=$b['yml_catalog'][1]['shop']['offers']['offer'];
|
|
for ($i=0; $i<count($tovar); $i++){
|
|
unset($artikul);
|
|
unset($id_tovar);
|
|
$artikul=$tovar[$i]['@attributes']['id'];
|
|
$id_tovar=DB::getValue("SELECT `id` FROM `tovar` WHERE `artikul`=? LIMIT 1", $artikul);
|
|
|
|
|
|
if ($id_tovar){
|
|
|
|
//Собираем характеристики
|
|
$hars=$tovar[$i]['param'];
|
|
|
|
for ($j=0;$j<count($hars);$j++){
|
|
$tip_har = $hars[$j]['@attributes']['name'];
|
|
$har = $hars[$j]['_value'];
|
|
echo $tip_har . "\n";
|
|
$id_sp_har=DB::getValue("SELECT `id` FROM `tovar_har_sp` WHERE `txt`=? LIMIT 1", $tip_har);
|
|
if (!$id_sp_har)$id_sp_har = DB::add("INSERT INTO `tovar_har_sp` (`txt`) VALUES (?)", $tip_har);
|
|
echo $id_sp_har . "\n";
|
|
|
|
DB::add("INSERT INTO `tovar_har` (`tovar_har_sp_id`, `tovar_id`, `txt`) VALUES (?, ?, ?)",
|
|
array(
|
|
$id_sp_har,
|
|
$id_tovar, $har
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
unset($hars);
|
|
unset($tip_har);
|
|
unset($har);
|
|
|
|
}
|
|
//print_r($hars);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*#print_r(html_to_obj($a['children'][0]['children'][0])); 337854
|
|
$b=html_to_obj($a);
|
|
//print_r($b['children'][0]['children'][0]['children'][0]['children'][5]['children']);
|
|
|
|
$tovar_massiv=$b['children'][0]['children'][0]['children'][0]['children'][5]['children'];
|
|
|
|
for ($i=0; $i<count($tovar_massiv); $i++){
|
|
|
|
|
|
$artikul=$tovar_massiv[$i]['id'];
|
|
|
|
$id_tovar=DB::getValue("SELECT `id` FROM `tovar` WHERE `artikul`=?", $artikul);
|
|
|
|
|
|
if ($id_tovar){
|
|
//Находим и удаляем картинки.....
|
|
DB::set("DELETE FROM `tovar_img` WHERE `tovar_id`=?", $id_tovar);
|
|
$f_pic=$tovar_massiv[$i]['children'];
|
|
for ($j=0; $j<count($f_pic); $j++){
|
|
|
|
$tip=$f_pic[$j]['tag'];
|
|
if ($tip=='picture'){
|
|
$link[$i][$j]=$f_pic[$j]['html'];
|
|
|
|
$filename[$i][$j] = generate_password(30);
|
|
exec("wget " . $link[$i][$j] . " -O /home/cloud/core/img/o.yurecnt.ru/tovar/" . $filename[$i][$j] . ".jpg");
|
|
DB::add("INSERT INTO `tovar_img` (`filename`, `tovar_id`) VALUES (?, ?)", array( $filename[$i][$j], $id_tovar ) );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
//echo $artikul;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
*/
|
|
?>
|