",, "<" $new = array("");#Меняем на полезное">", , "<" $text = str_replace($old, $new, $txt);#Собсно сама замена =) return $text; } function to_barcode($txt){ $old = array(".");#Ищем вредное ">",, "<" $new = array("");#Меняем на полезное">", , "<" $text = str_replace($old, $new, $txt);#Собсно сама замена =) return $text; } //функция автоматического создания характеристик function to_har( $txt, $db ){ $str_pos = mb_strripos( $txt, ":" ); $har = trim( mb_substr( $txt, 0, $str_pos ) );//Характеристика $txt = mb_substr( $txt, $str_pos+2, strlen( $txt ) );//Значение характеристики unset( $a ); $a['txt'] = $db->magicSQLite($har); $id = $db -> get_val( 'sp_har', $a, 'id' ); //Смотрим, есть ли у товара эта характеристика, если же есть - обновляем, в случае отличая, иначе - добавляем.... unset( $b ); $b['pages_id'] = ID; $b['sp_har_id'] = $id; $txt_from_bd = $db -> get_val( 'har', $b, 'txt' ); if( $txt_from_bd ){ if($txt_from_bd!=$txt){ $sql='UPDATE `har` SET `txt`="' . $txt . '" WHERE `pages_id` = ' . ID . ' AND `sp_har_id`=' . $id; $db->free_sql($sql); } }else{ $b['txt'] = $txt; $db -> add( 'har', $b ); } } //Проверяем справочник характеристик function find_in_bd($txt, $db){ $str_pos= mb_strripos($txt, ":"); $strTrim=mb_substr($txt, 0, $str_pos); unset($a); $a['txt']=$db->magicSQLite($strTrim); $id=$db->get_val('sp_har', $a, 'id'); if (!$id)$db->add('sp_har', $a); if ($strTrim=='Штрих-код' || $strTrim=='Штрихкод'){ $barcode = mb_substr($txt, $str_pos+2, strlen($txt)); $barcode=to_barcode($barcode); $sql='UPDATE `pages` SET `barcode`="' . $barcode . '" WHERE `id` = ' . ID; $db->free_sql($sql); } } //Обрабатываем заголовок: $txt = $page[0]['txt']; //если первые шесть символов - цифры. а шестой - пробел - считаем что это артикул if ( $page[0]['artikul']=='' ){ $txt=trim($txt); $artikul = substr( $txt, 0, 6 ); $space = substr( $txt, 6, 1 ); if ($space==' ' && !$page[0]['artikul']) { $page[0]['txt']= $db -> del_str( $page[0]['txt'], $artikul . ' ' ); //echo $page[0]['txt']; #$sql = 'UPDATE `pages` SET `artikul`=' . $artikul . ', `txt`="' . $page[0]['txt'] . '" WHERE `id`=' . ID; #$db -> free_sql( $sql ); // echo $page[0]['artikul']; $page[0]['artikul'] = $artikul; } } //print_r($page); $sql='UPDATE `pages` SET `json`="" WHERE `json` = "' . '{""opisanie"":null}"'; //echo $sql; $db->free_sql($sql); //смотрим описание: if (!$page[0]['opisanie'] || $page[0]['opisanie']==null){ $content='/home/www/tk-ligat.ru/content/a_' . $page[0]['artikul'] . '.txt'; //Смотрим существование файла с описанием: if (!file_exists($content)){ exec('python3 /home/www/tk-ligat.ru/get.py ' . $page[0]['artikul'] . ' ' . ID); sleep(2); } //Ищем контент спарсенный $text = fopen($content, "r"); if ($text) { while (($buffer = fgets($text)) !== false ) { $textStr = trim($buffer); //echo $textStr; if($textStr=='Характеристики')break; //echo $textStr; if($textStr!='Описание' && strlen($textStr)>3)$page[0]['opisanie']=$page[0]['opisanie'] . '

' . $textStr . '

'; } } fclose($text); unset($a); $a['id']=ID; $json=$db->from_j($db->get_val('pages', $a, 'json')); //print_r($json); $json['opisanie']=$page[0]['opisanie']; $to_j=$db->to_j($json); if (BD_TYPE=='SQLITE3'){ $sql='UPDATE `pages` SET `json`="' . $db->magicSQLite($db->clear_json($to_j)) . '" WHERE `id` = ' . ID; }else{ $sql='UPDATE `pages` SET `json`="' . $db->clear_json($to_j) . '" WHERE `id` = ' . ID; } //echo $sql; $db->free_sql($sql); } //смотрим характеристики: if (!$page[0]['harakteriskika']){ $content='/home/www/tk-ligat.ru/content/a_' . $page[0]['artikul'] . '.txt'; //Смотрим существование файла с описанием: if (!file_exists($content)){ exec('python3 /home/www/tk-ligat.ru/get.py ' . $page[0]['artikul'] . ' ' . ID); sleep(2); } //Ищем контент спарсенный $text = fopen($content, "r"); if ($text) { $i=0; while (($buffer = fgets($text)) !== false ) { $textStr = trim($buffer); if($textStr=='Характеристики')$i=1; //echo $textStr; if($textStr!='Характеристики' && $i==1 && strlen($textStr)>2){ $page[0]['harakteriskika']=$page[0]['harakteriskika'] . '' . to_table($textStr) . ''; find_in_bd($textStr, $db); to_har($textStr, $db); } } } fclose($text); } ?>