Библиотека иконок VirtualLNK Icons MegaPack (отличная коллекция иконок по нескольким тематикам)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

27 Comments

  1. Altair777

    (0) Пожалуста, в Описаниии поставьте галочку «Лайф» и уберите про плюсики.

    Это уже написано автоматически внизу.

    Reply
  2. CheBurator

    Не все хорошо втыкают по английски — поэтому было бы хорошо выложить в переводе на русский начало лицензионного соглашения

    Reply
  3. Altair777

    (0) И что делать с pdf? Автор, объясните гда сами иконки?

    Reply
  4. hame1e00n

    Дык, загружаю, у меня ж не гигабитный интернет… еще все заархивировать надо… просьба подождать — заливаю все по порядку

    Reply
  5. LavS

    Ура, всё загрузил:)

    Reply
  6. LavS

    … осталось только закачать:)

    Reply
  7. hame1e00n

    (3) Залил все))) (5) Ага)

    Reply
  8. hame1e00n

    Жду комментариев и плюсиков)))

    Reply
  9. Душелов

    (8) см. (1) >Описаниии поставьте галочку «Лайф»

    Иначе будут минусы.

    Reply
  10. hame1e00n

    (9) Забыл, еще свою обработку выкладывал: http://infostart.ru/projects/4961 сейчас иправлюсь))))

    Reply
  11. hame1e00n

    (9) Че то не понял, поставил галочку лайф, щас захожу в профайл пишет «Рейтинг Life: -9». Почему???

    Reply
  12. hame1e00n

    Вот фигня, хотел рейтинг 30 набрать, а тут скорее в минуса уйдешь(((( Эхехехе

    Reply
  13. Altair777

    (11) Это пересчитается, не переживайте.

    Reply
  14. hame1e00n

    (13) Ну а за что Вы меня тут минусанули: http://infostart.ru/projects/4961/?p=2#comm25?))))

    За то что сказал «Спасибо, учтем»?))))

    Reply
  15. Altair777

    (14) Почему Вы не цитируете свой комментарий полностью?

    «25. hame1e00n 11.07.2009 12:08:52

    (21), (22), (23) спасибо, учтем. (24) плюсанул»

    За это — «(24) плюсанул».

    Снимите, пожалуйста, свой плюс. Этот товарищ еще раньше был пойман на незаконном накручивинии рейтинга.

    Свой минус я уже с Вас снял. Авансом. 🙂

    Reply
  16. Altair777

    (14) Вы тоже науручиваете свой рейтинг? 🙂

    to MegaCoder уберите свой плюс. Вы не знаете ситуации и плюсуете.

    Reply
  17. hame1e00n

    (15) Не цитировал, потому что хотел сделать ссылку на комментарий… Не получилось))) А как цитировать? Просто копировать?

    Насчет плюса — попросили, плюсанул, что тут такого страшного?

    Reply
  18. hame1e00n

    (16) Почему накручиваю??? O_o

    Что-то странное творится на этом сайте: добавляешь свои обработки, тебя минусуют и еще обвиняют в чем то.

    «13. Altair777 11.07.2009 21:53:26

    (11) Это пересчитается, не переживайте.»

    Не пересчиталось, все также -9 (((

    Reply
  19. Altair777

    (17) Половину цитаты Вым удалось скопировать, а вторую нет? 🙂

    Вы всегда такой безотказный? Мне вот денег хотелось бы. 🙂

    И не только мне. Переведите на счет Инфостарта хотя бы.

    http://infostart.ru/about/donation/

    А страшное то, что это незаконно.

    Reply
  20. Altair777

    (18) Еще не пересчитывалось.

    Или У Вас уже были удаленные минусовые разработки?

    Reply
  21. hame1e00n

    (19) Не то чтобы безотказный, просто по возможности стараюсь помогать людям, если просят)

    Денег дыл бы, только сам еще не устроился работать — только диплом получил))

    А Инфостарт мне нравится — очень много всего интересного и самое главное своевременно! Поэтому как появится денюжка, вполне возможно перечислю разумную сумму на счет данного ресурса.

    (20) Минусовых разработок не было, этот минус появился, когда перенес в раздел Лайф. Ладненько, будемс ждать… Все равно, уже дождался и скачал, что хотел (тоже иконки).

    Reply
  22. Altair777

    (21) Я верб что у Вас будет все хорошо 🙂

    Только ботов не нужно заводить 😉

    Посмотрите в личку.

    Reply
  23. anig99

    Никак не могу скачать файлы… Скорость скачивания 0…

    Рейтинга вроде хватает

    Reply
  24. DarkSign

    Что за…? Файлы скачать невозможно ни в одном браузере… Либо поправьте ссылки, либо уберите пост!

    Reply
  25. sanches

    Безобразие, сняли бакс, а не качается. Качал файл Архив_с_иконками.Busines.part1.rar. На других не стал экспериментировать. Накладно себе 🙂

    Ставлю пока минус 🙂

    Reply
  26. golunov

    Иконки удалось скачать, но воспользоваться нет. Скачал иконки бизнес и…

    они меня не устроили. Пришлось пользоваться нетом там их больше и ни более интересные. пока минус.

    Reply
  27. Kserken

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *