core/api/modules/tovar_show/tk-ligat.php

137 lines
5.8 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
function to_table($txt){
$old = array(": ");#Ищем вредное ">",, "<"
$new = array("</td><td>");#Меняем на полезное"&gt;", , "&lt;"
$text = str_replace($old, $new, $txt);#Собсно сама замена =)
return $text;
}
function to_barcode($txt){
$old = array(".");#Ищем вредное ">",, "<"
$new = array("");#Меняем на полезное"&gt;", , "&lt;"
$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'] . '<p>' . $textStr . '</p>';
}
}
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'] . '<tr><td align="left">' . to_table($textStr) . '</td></tr>';
find_in_bd($textStr, $db);
to_har($textStr, $db);
}
}
}
fclose($text);
}
?>