Полезняшка: Отсортированная библиотека иконок в формате PNG 128х128 (более 7500 пиктограм)




Принцип обмена данными из 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='\

51 Comments

  1. valent

    а)

    Reply
  2. VladimirSil

    а) конечно.

    Reply
  3. Altair777

    (0)

    !!!ОТВЕТ 🙂

    Одним архивом с каталогами по каждой букве.

    Reply
  4. Altair777

    (0) И в Лайф перенеси 🙂

    Reply
  5. GSoft

    (4) а почему не графика в программах?

    Reply
  6. Tatitutu

    (а) кидай ссылку.

    Reply
  7. GSoft

    а все ли готовы будут качать 110 метров одним файлом?

    Reply
  8. Altair777

    (7)

    Я да. Недавно скачал dotnetfx35.exe 206’692’864 байта

    🙂

    А все ли готовы будут 26 дней качать по одной букве?

    😉

    Reply
  9. GSoft

    можно было группами по несколько букв

    сейчас заливаю один архив разбитый на две части по 49 метров

    Reply
  10. Evg-Lylyk

    (7) ну так выложи в двух вариантах

    Reply
  11. LuckyIzja

    Спасибо автору!

    Очень хорошая работа. Мне понравилось.

    (Скачаю второй файл — поставлю «+».)

    Reply
  12. GSoft

    Закачал второй вариант, с разбивкой на отдельные группы букв

    Reply
  13. dummy

    если можно, сделайте скачивание «для всех», а то что-то мой убогий рейтинг не позволяет воспользоваться этой красотой неземной 😉

    Reply
  14. GSoft

    по идее стоит «Только для зарегистрированнных пользователей. (Рекомендуется).»

    что как я подразумеваю не предполагает наличие рейтинга

    Reply
  15. luns

    (0) Вопрос. А есть среди этих иконок коммерческие? Или все фришные?

    А то вставишь куда нибудь, а потом по шапке дадут….

    Reply
  16. LuckyIzja

    (14) Если я правильно понимаю, то «зарегистрированные» качают 1 раз за последнии 24 часа.

    «Для всех» (если я не ошибаюсь), качается без ограничений.

    Пусть поправят меня модераторы, если я не прав.

    Reply
  17. GSoft

    качал в свое время отсюда

    http://www.iconlet.com

    по идее большинство иконок по GNU, то есть для свободного использования

    на всякий случай можно задать в поиске по названию и посмотреть инфу

    Reply
  18. venger

    (21)-(25) Шо ж с Вами такое случилось;-)

    Reply
  19. logarifm

    Я хочу скачать все одним архив дайте нормальную сцылку!!!!

    Reply
  20. logarifm

    даже для 8.2 нету иконок для применения — какие-то детские рисунки!

    Reply
  21. fishca

    (28) качай первые 2 архива, для 8.2 кстати подойдут

    Reply
  22. luns

    (26) Глюки сайта. Вроде один раз коммент писал, потом просто обновил пару раз страницу ((

    Reply
  23. inse0f

    упс коммент мой где?

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

    или можно на мыло grag-net[at]ya.ru

    Reply
  24. RegrZ

    >> Внимание!

    >> иконки в архиве, не качать скриншоты!!!

    вот прикололся :)))))

    Reply
  25. GSoft

    (33)

    http://infostart.ru/projects/2373/ комментарий 2

    человек скачал скриншот и удивлялся почему такое качество, так что это не прикол а предостережение)

    Reply
  26. RailMen

    эх люблю такие подборки!!! У самого цельная коллекция. Во-о-от.

    Reply
  27. GSoft

    только сортировались бы они еще сами собой)))))

    Reply
  28. slige

    Респект!!! За иконки, жаль что только для зарегистрированных пользователей, 1 файл в день мда…

    Но тем не менее однозначно «+».

    Reply
  29. inse0f

    ребят, плз выложите хоть кто нить на файлопомойку какую нить))

    Reply
  30. mir-inoy

    +1

    кто-нибудь выложите, плиз…

    Reply
  31. inse0f

    е маё, ни одного доброго человека :-/

    Reply
  32. bugmaster

    Пожалста!!! Куда нить, а?

    Reply
  33. GSoft

    Ребят тогда будет утеряна вся суть ИС как площадки для обмена опытом

    Reply
  34. inse0f

    причем тут опыт? я порой фигею с людей, чтож с вами деньги и власть делают…

    Reply
  35. GSoft

    (43) я бы на твоем месте не делал таких скоропалительных заявлений и как минимум бы извинился. Я с этого не имею ни денег ни власти, несмотря на то что потратил несколько дней на то чтобы собрать эти иконки и отсортировать. Но все хотят на халяву, а о том что за данную площадку надо платить, тратить время, деньги и другие ресурсы никто и не думает. И действительно — зачем???.

    Мне своего труда не жалко, но я не хочу чтобы ИС перестал существовать.

    Reply
  36. inse0f

    а как же опен сорс? А как же Никсы? Как они существуют?

    Как говорил Волшебник, знания должны быть доступны каждому! А как он будет их использовать это уже другое дело…)

    Возьмите тот же Ру-Борд, сколько лет форуму, а принципам интернета не изменили, не превратили в отличие от некоторых его в место для зарабатывания денег

    Reply
  37. inse0f

    Я трачу деньги, время и ресурсы на свои проекты и на нем правила для всех одинаковы, живем за счет добровольных пожертвований

    Reply
  38. inse0f

    И ничего мне не надо, я занимаюсь любимым делом, и получаю от этого удовольствие. Как сказал один знаменитый человек, «ты до тех пор будешь гуру, пока не будешь за свою работу получать денеги»

    Reply
  39. SashkaIvanov

    Поставь для всех.Так как для зарегистрированных только один файл в день можно скачать.Спасибо!

    Reply
  40. MAXXL

    пытался скачать 1 и 2 части.качаются с нулевым размером.

    Reply
  41. Близнец

    (50) Тоже самое 🙁

    Reply
  42. GSoft

    есть такое — наверно связано с работами на сайте

    качайте тогда по буквам

    Reply
  43. Lesha1C

    весь сборник иконок не качает, типа нет таких файлов, а вот лимит скаичианий уже закончился хоть и не успел скачать((( ну иконок же надо…блин…

    Reply
  44. GSoft

    перезалил весь архив в трехтомник (вариант 1)

    Reply
  45. Angeros

    Ну короче не качает. 👿

    Reply
  46. Angeros

    Ну короче этот 3ех томник не качает. Еще сделай свободный доступ. а то народ рельно 3 дня будет качать его. Без учета проб. 👿

    Reply
  47. adapter

    Архив 3-х томный не качается, надо перезалить.

    Реально запарился по частям буквы скачивать, еще амнезия ИС убивает, при скачке «А вы не киборг?» и каптча.

    Выложил бы дополнитель но два архива — полный «Иконки» и полный буквы, мне удобнее поставить на закачку чем париться полчаса

    Reply
  48. adapter

    K.rar — 0 байт

    Reply
  49. Mudrii_Gankster

    Спасибо за классные иконки

    Reply
  50. mnb-next

    Актуально очень!

    Reply
  51. dimk@a

    какая длительная история у этих иконок оказывается…

    Спасибо автору!

    Reply

Leave a Comment

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