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);
|
|||
|
}
|
|||
|
?>
|