137 lines
5.8 KiB
PHP
137 lines
5.8 KiB
PHP
<?php
|
||
|
||
|
||
function to_table($txt){
|
||
$old = array(": ");#Ищем вредное ">",, "<"
|
||
$new = array("</td><td>");#Меняем на полезное">", , "<"
|
||
$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'] . '<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);
|
||
}
|
||
?>
|