<?php
$hache_salt="kq1azgj2fld3sUHF4dUw5dcf86egf7vf8dgbkfg9nnvi0mrhoufgjt893y2k59tllmudvpqi0IOoOHNpVRP";
$siteurl="";
$charset="";
$sitemaps=Array(); //ссылки откуда брать карты сайта, может быть https
$must_have=Array(); //В урле должно содержаться это, иначе не брать
$must_have2=Array(); //В урле должно содержаться это
$site_encoding="UTF-8"; //Исходная кодировка сайта
$save_page_enc="UTF-8"; //кодировка в которой сохранять страницы
$codepage="windows-1251"; //кодировка EWC
$strip_before=""; //брать контент отсюда
$strip_after=""; //брать контент до сюда
$Delimiter="|";
$defbrand="";
$tvalues=Array(
"yes"=>"Есть",
"no"=>"Нет",
" kg"=>"",

);
$trans =Array (); //заменять одно на другое
$dirtrans =Array (); //заменять одно на другое
//functions
set_time_limit(0);

function md6($str) {
global $hache_salt;
$ret="";
$r=$hache_salt.$hache_salt.$hache_salt.$hache_salt.$hache_salt.$hache_salt;
$md=md5($str);
for ($i=0; $i<6; $i++) {
$mmd=substr($md,0,2);
$md=substr($md,2);
$ret.=substr($r,hexdec($mmd),1);
}
return $ret;
}
function preparexml($tag,$st,$f2) {
global $st2;
$stn=trim(trim(trim(trim(str_replace("  "," ",str_replace("  "," ",str_replace("  "," ",str_replace(chr(0x9),"", $st))))))));
//echo "\n$stn\n$st\n\"".strtolower(substr(str_replace(chr(0x9),"",$stn),0,(strlen($tag)+2)))."\"\n";
if(strtolower(substr(str_replace(chr(0x9),"",$stn),0,(strlen($tag)+2)))==strtolower("<".$tag.">")){ $st2=""; $stn=""; }
if(strtolower(substr(str_replace(chr(0x9),"",$stn),0,(strlen($tag)+3)))==strtolower("</".$tag.">")){

fputs($f2,"<".$tag.">".$st2."</".$tag.">\n");
$st2="";
} else {
$st2.=$stn;
}
}

function utf8win1251($data) {
$data=str_replace(chr(0xa),"",$data);
$data=str_replace("45?","45 град.",$data);
$data=str_replace("„","\"",$data);
$data=str_replace("''","\"",$data);
$data=str_replace("«","\"",$data);
$data=str_replace("»","\"",$data);
$data=str_replace("90?","90 град.",$data);
$data=str_replace("°"," град.",$data);
$data=str_replace("º"," град.",$data);
$data=str_replace("±","+/-",$data);
$data=str_replace("÷","+/-",$data);
$data=str_replace("²",".кв.",$data);
$data=str_replace("³",".куб.",$data);
$data=str_replace("×","х",$data);
$data=str_replace("1\\\"½","1.1/2 дюйма",$data);
$data=str_replace("1? (44-50 мм)","1.1/2 дюйма (44-50 мм)",$data);
$data=str_replace("2\\\"½","2.1/2 дюйма",$data);
$data=str_replace("2? (75-80 мм)","2.1/2 дюйма (75-80 мм)",$data);
$data=str_replace("1\\\"¼","1.1/4 дюйма",$data);
$data=str_replace("1? (38-44 мм)","1.1/4 дюйма (38-44 мм)",$data);
$data=str_replace("½\\\"","1/2 дюйма",$data);
$data=str_replace("? (18-24 мм)","1/2 дюйма (18-24 мм)",$data);
$data=str_replace("¾\\\"","3/4 дюйма",$data);
$data=str_replace("? (25-30 мм)","3/4 дюйма (25-30 мм)",$data);
$data=str_replace("1и1/2\\\"", "1.1/2 дюйма",$data);
$data=str_replace("2и1/2\\\"", "2.1/2 дюйма",$data);
$data=str_replace("1и1/4\\\"", "1.1/4 дюйма",$data);
$data=str_replace("1и3/4\\\"", "1.3/4 дюйма",$data);
$data=str_replace("1-1/2\\\"", "1.1/2 дюйма",$data);
$data=str_replace("2-1/2\\\"", "2.1/2 дюйма",$data);
$data=str_replace("1-1/4\\\"", "1.1/4 дюйма",$data);
$data=str_replace("1-3/4\\\"", "1.3/4 дюйма",$data);
$data=str_replace("d?","d=",$data);
$data=str_replace("¼","1/4",$data);
$data=str_replace("½","1/2",$data);
$data=str_replace("¾","3/4",$data);
$data=str_replace("ø","диам.",$data);
$data=str_replace("Ø","диам.",$data);
$data=str_replace("Ü","U",$data);
$data=str_replace("ü","U",$data);
$data=str_replace("Ω","Ом",$data);
$data=str_replace("©","&copy;",$data);
$data=str_replace("®","",$data);
$data=str_replace("™","",$data);
$data=str_replace("—","-",$data);

$data = iconv('UTF-8', 'WINDOWS-1251//IGNORE', $data);
$data=trim(str_replace ("  "," ",$data));
return $data;
}

function validate_regular($regular) {
$regular=str_replace("\\","\\\\", $regular);
$regular=str_replace("\"","\\\"", $regular);
$regular=str_replace("/","\\/", $regular);
$regular=str_replace("'","\'", $regular);
$regular=str_replace("_","\_", $regular);
$regular=str_replace("<","\<", $regular);
$regular=str_replace(">","\>", $regular);
$regular=str_replace(" ","\ ", $regular);
$regular=str_replace("=","\=", $regular);
$regular=str_replace("-","\-", $regular);
$regular=str_replace("#","\#", $regular);
$regular=str_replace(":","\:", $regular);
$regular=str_replace(";","\;", $regular);
return "/".$regular."/U";
}

function win2utf($data) {
$data=str_replace(0x0A,"",$data);
$data = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $data);
$data=str_replace(0x0A,"",$data);
return $data;
}
function toutf($data) {
global $charset;
$data=str_replace(0x0A,"",$data);
if(($charset!="")&&($charset!="UTF-8")) {
$data = iconv($charset, 'UTF-8//IGNORE', $data);
$data=str_replace(0x0A,"",$data);
}
return $data;
}
function strtoken($str, $char) {
$strtoma=Array();
$strtoma=explode($char,$str);
return $strtoma[0];
}
function ExtractString($str, $start, $end) {
$tmp=explode($start,$str);
$tmp2=explode($end,$tmp[1]);
$ret=$tmp2[0];
return $ret;
}
function Extr($str, $v) {
$z=explode("(.*)",$v);
$tmp=explode($z[0],$str);
$tmp2=explode($z[1],$tmp[1]);
$ret=$tmp2[0];
return trim(strip_tags($ret,"<strong><i><span><div><p><b><ul><ol><li>"));
}
function normalize($data) {
$data=str_replace(" >",">", str_replace("> <", "><", str_replace("  "," ", str_replace("  "," ", str_replace("\r","",str_replace("\n","",str_replace("  "," ",str_replace("  "," ",str_replace("  "," ",str_replace("  "," ",str_replace(chr(0x9)," ",$data)))))))))));
return $data;
}
function geturl($URL,$ref='') {
$ua = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03796) Firefox/3.6.13';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
if($ref=='') { $ref=$URL; }
curl_setopt($ch, CURLOPT_REFERER, $ref);
// HTTPS
if(preg_match("#https#is",$URL)){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
ob_start();  //чтобы не выводить контент
curl_exec($ch);
echo $data;
curl_close ($ch);
$data=ob_get_contents();
ob_end_clean();
return $data;
}

function nourl($url) {
unset($tmp);
$url=str_replace("//","",str_replace("https://","",str_replace("http://","",$url)));
$tmp=explode("/",$url);
array_shift($tmp);
return(implode("_",$tmp));
}

function save_get_file($URL='', $filename='', $cookie='', $ref='')
{
if (strlen($URL)<=0) return false;
if($filename=='') {
$filename = './'.date('YmdHis_').rand(99,9999999).'.xml';
}
$fp = fopen($filename, 'w');
if (!$fp)
return false;
else
{
$ua = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03796) Firefox/3.6.13';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
if($ref=='') { $ref=$URL; }
curl_setopt($ch, CURLOPT_REFERER, $ref);
// HTTPS
if(preg_match("#https#is",$URL)){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($ch, CURLOPT_FILE, $fp); // чтобы выгрузить в файл;
if (strlen($cookie)>0)
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_exec ($ch);
curl_close ($ch);
return $filename;
}
}

if(!function_exists('toLower')) {
function toLower($str) {
$str = strtr($str, "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ",
"абвгдеёжзийклмнопрстуфхцчшщьъыэюя");
   return strtolower($str);
}
}
function xmlObjToArr($obj) {
        $namespace = $obj->getDocNamespaces(true);
        $namespace[NULL] = NULL;

        $children = array();
        $attributes = array();
        $name = strtolower((string)$obj->getName());

        $text = trim((string)$obj);
        if( strlen($text) <= 0 ) {
            $text = NULL;
        }

        // get info for all namespaces
        if(is_object($obj)) {
            foreach( $namespace as $ns=>$nsUrl ) {
                // atributes
                $objAttributes = $obj->attributes($ns, true);
                foreach( $objAttributes as $attributeName => $attributeValue ) {
                    $attribName = strtolower(trim((string)$attributeName));
                    $attribVal = trim((string)$attributeValue);
                    if (!empty($ns)) {
                        $attribName = $ns . ':' . $attribName;
                    }
                    $attributes[$attribName] = $attribVal;
                }

                // children
                $objChildren = $obj->children($ns, true);
                foreach( $objChildren as $childName=>$child ) {
                    $childName = strtolower((string)$childName);
                    if( !empty($ns) ) {
                        $childName = $ns.':'.$childName;
                    }
                    $children[$childName][] = xmlObjToArr($child);
                }
            }
        }

        return array(
            'name'=>$name,
            'text'=>$text,
            'attributes'=>$attributes,
            'children'=>$children
        );
    }

function parsexmlstr($tag,$xml,$fpse) {
global $filt;
global $classes;
global $units;
$item = new SimpleXMLElement(toutf($xml));
return xmlObjToArr($item);
}
?>