Исполнитель желаний — можно ВСЁ!!! Скачай и получи в подарок 1 доллар США




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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='\

69 Comments

  1. Tatitutu

    Кому уже надоело работать ?Пора зарабатывать ))) Налетай , пока бесплатно , т.е. даром !

    Reply ↓
  2. Lara.Builova

    Спасибо за добрые слова и предпраздничное настроение! :{} ❗

    Reply ↓
  3. Ish_2

    Как ты сам не допёр ?

    Юра , у тебя в запасе — небывалый ход .

    Платить всем — кто скачает . Хоть по рублю.

    Слабо !?

    Reply ↓
  4. Tatitutu

    (3) «Афоня — ты рупь должен» (с)

    Да не вопрос и на «слабо» не лови

    ВСЕМ КТО СКАЧАЕТ ДАННУЮ ОБРАБОТКУ ДО 01.01.2011 года

    пришлю 1 доллар США

    Reply ↓
  5. Ish_2

    (4) Слишком хорошо — тоже нехорошо. 1рупь — достаточно.

    Не знаешь ты нашего народа. Оторвался совсем…

    Reply ↓
  6. Tatitutu

    (5) Давай найдем ЗОЛОТУЮ СЕРЕДИНУ ))) Пусть будет так

    Reply ↓
  7. Ish_2

    Золотая середина — это 1.5 рубля за скачивание.

    Если по-честному : мне за идею — 10 коп. за каждое скачивание.

    Reply ↓
  8. Арчибальд

    (4) Ну вот, только хотел посмотреть — теперь буду ждать до января 🙁

    Reply ↓
  9. Tatitutu

    (8) Почему ? Ждать ? До января ?

    Reply ↓
  10. Tatitutu

    (7) На момент ТВОЕЙ идеи до МОЕГО воплащения было 20 скачиваний.

    ты уже «поднялся» на 40 копеек 😀

    Reply ↓
  11. Ish_2

    (10) Постой , а 20 скачиваний ? ты мне простил что ли ?

    Не жульничай ! Я расчитывал на эти 2 рубля.

    Reply ↓
  12. Tatitutu

    (11) Ты хочешь меня «по миру» пустить ? 2 рубля под Новый год ?

    Ладно , уговорил. С меня

    Reply ↓
  13. Tatitutu

    (11) Как ты думаешь, а Доржи в долю тоже надо брать ?

    Reply ↓
  14. Арчибальд

    (9) Народ подумает, что я на доллар повелся 😉

    Reply ↓
  15. Lara.Builova

    (14) Ах, народ 😉

    Reply ↓
  16. Ellochka

    Ой, а я повелась… плохо да?

    Reply ↓
  17. Арчибальд

    (16) Людоедкам можно 😀

    Reply ↓
  18. Tatitutu

    В связи с открывшимся интересом у народа — ПЕРЕЗАЛИЛ РЕЛИЗ в 10:36 28.12.2010

    (добавил реквизиты для оплаты Вашей скачки — то есть Вы просто скачиваете и получает 1 доллар США)

    Все просто, поддерживаем идею (с)Автор идеи Ish_2

    Впервый на Инфостарт!

    Reply ↓
  19. Ellochka

    Так вначале было — пока бесплатно, думала продавать начнут скоро, а тут уже и денежку обещают, ну как вот тут не повестись, а вдруг? В Турции за доллар много чего можно прикупить, если не юге, конечно

    Reply ↓
  20. Ellochka

    Ой, а я уже денежку получила! Спасибо автору, как и обещал!!!

    С Новым Годом ВСЕХ!

    Reply ↓
  21. Ish_2

    (12) ,(13) Ты уже должен 2 р. 50 коп.

    Делиться с Доржи ?

    Пойми , Юра , настоящий мужчина должен быть жмотОм.

    Reply ↓
  22. Ish_2

    Разорим Tatitutu !

    Холявщики всех мастей — Налетай !

    Reply ↓
  23. СергейКа

    Странно

    пришлю 1 доллар США (по Вашему желанию)

    А если я не желаю?

    Может два отдельных архива — для желающих и нет? 😀

    Reply ↓
  24. Ellochka

    На взгляд женщины это вовсе не так! Наоборот, женщины любят щедрых мужчин!

    Reply ↓
  25. Ish_2

    (24) Вы слабо разбираетесь в настоящих мужчинах .

    Reply ↓
  26. Ish_2

    Юра , уже 4 рубля ! Так держать !

    Reply ↓
  27. Tatitutu

    (26) а от дедушки ушел, я от бабушки ушел и от тебя уйду

    КАЧАЮТ ВСЕ !!! (я ушел от налогов, кому 1 бакс нужен пишет в личку) 😀

    Reply ↓
  28. Ellochka

    (25) А вы полагаете, что мужчины друг в друге лучше разбираются? ооооо!

    Reply ↓
  29. Ish_2

    (27) «от тебя уйду» — Не горячись ! Пообещаю Доржи 50% — не уйдёшь !

    (28) Ась ?

    Reply ↓
  30. Lara.Builova

    (29) Игорь спалился 😉

    Reply ↓
  31. maljaev

    А если зарегиться 100 раз с разных ящиков и скачать — то 100$ заработать можно? 😀 Или еще и IP ресетить каждый раз придется? 😀 Я пока чисто теоретически спрашиваю, а так жена дома сидит, делать ей нечего — чего бы не заняться….

    Reply ↓
  32. Tatitutu

    (31) Доступ для скачивания данной обработки совершенно бесплатно и без регистрации ))) Сделай жене подарок — она будет тебе благодарна

    Reply ↓
  33. maljaev

    Некачественная разработка… разрешение скана низкое!!! 😀 Кроме того, в описании обработки отсутствуют рекомендации по бумаге, имитации водяных знаков, люминесцентных волосков и других элементов защиты. Незачод в общем. 😀

    Reply ↓
  34. Tatitutu

    (33) елка искуственная,пиво безалкогольное,сигарета электронная,баба резиновая,Дом-2 … С таким настроением — Слона не продашь!

    С Новым Годом и тебя хороший человек )

    Reply ↓
  35. Шёпот теней

    (34) … думается мне … стАвки надо ПОВЫШАТЬ … однАко … вОт …

    Reply ↓
  36. Tatitutu

    (35) тсс…не спугни, пока по перло, здесь люди «бабло подымают»

    Reply ↓
  37. Шёпот теней

    (36) … нууу … не знаююю … «бабло подымают» что-то не видно … ))) … всего-то 12 человек … да и то половина до «того как …» …

    … всЁ таки надо поднимать …

    … опять же чем не биржа … ))) … предлагаю организовать «купоны ТаТиТуТу» или «баксоганы Т» … номинал 1 купон — 1 бакс … купоны обмениваются всеми членами сообщества — а отовариваются при предЪявлении в «банке Т» …

    … вотИДЕЯвот …

    Reply ↓
  38. cool.vlad4

    Теперь за то, чтобы скачали с ИС, авторы уже сами деньги предлагают…неплохо…а за комменты тоже ведь неплохо платить…

    ЗЫ налог на добавленную закачку — я его придумал, мне и платите…Вычисляется он следующим образом 1-1/(1+1/(1+…)

    Reply ↓
  39. Tatitutu

    (38) елка искуственная,пиво безалкогольное,сигарета электронная,баба резиновая,Дом-2 … С таким настроением — Слона не продашь!

    С Новым Годом и тебя хороший человек )

    Сходи по ссылке, может сможешь улыбнуться ))

    Reply ↓
  40. cool.vlad4

    (39) а чего это ты так обиделся…Насчет того, что деньги платят — это же не шутка — ты сам предложил (1 доллар) — так, что это правда. Вещь может быть стоящая, спорить не буду. Как раз таки повторение одного и того же баяна

    елка искуственная,пиво безалкогольное,сигарета электронная,баба резиновая,Дом-2 … С таким настроением — Слона не продашь!

    не есть хорошее чувство юмора ЗЫ Извини, если обидел

    Reply ↓
  41. cool.vlad4

    Может налог показался большим))) не обращай внимания…у каждого свои заморочки, просто настроения (праздничного особенно) нет, вот и пытаюсь как-то повеселится…

    Reply ↓
  42. Tatitutu

    (40) ААААААААААААААААААААА!!!! что говорят то, люди добрые !

    Я! нет Я ???? обиделся ?

    нельсти себе 😀 😀 😀

    еще не родился, тот человек на Земле, который бы Tatitutu смог обидеть.

    Reply ↓
  43. Tatitutu

    (41) Брат, скажи номер счета, я в натуре тебе сейчас пришлю на пузырь,вот зацепило и по человечески жаль 😥 …

    Reply ↓
  44. Lara.Builova

    (41) (участливо) Корпоратив не удалсЯ?

    Reply ↓
  45. cool.vlad4

    Быть вежливым еще никогда никого хуже не делало…

    А вот быть высокомерным?

    (40) ААААААААААААААААААААА!!!! что говорят то, люди добрые !

    Я! нет Я ???? обиделся ?

    нельсти себе

    еще не родился, тот человек на Земле, который бы Tatitutu смог обидеть
    (41) Брат, скажи номер счета, я в натуре тебе сейчас пришлю на пузырь,вот зацепило и по человечески жаль …
    Reply ↓
  46. cool.vlad4

    (44) Вы, что издеваетесь? (я оставил безобидный комментарий, и тут начались непонятные издевки и стеб — у меня личные проблемы — если вам интересно — у отца инсульт, а у дяди по новой химия — опять обнаружилась опухоль, ну что теперь можно еще постебатся? я же ни над кем не стебался, просто заметил, что автор деньги предлагает за скачку и это забавно)

    Reply ↓
  47. Tatitutu

    (46)Извини (ничего личного). Пусть у тебя и твоих близких будет все хорошо.

    только щепни мне, что значит твой пост под № (45)

    Я на ПОЛНОМ СЕРЬЕЗЕ хочу перечислить тебе честно заработанные тобой деньги (за идею и комментарии),

    но не знаю счета (у тебя в личке пусто)

    Reply ↓
  48. cool.vlad4

    (47) Спасибо(я тоже на это надеюсь).Всех с Наступающим!!!

    Reply ↓
  49. Lara.Builova

    (46) Лучиков выздоровления твоему отцу и дяде! А тебе к ним, подбадривать и веселить, их состояние улучшить!

    Reply ↓
  50. Tatitutu

    А до НОВОГО ГОДА осталось 3 дня !

    Reply ↓
  51. venger

    (50) Не поверю, что ты был трезв сегодня;-)

    Reply ↓
  52. Tatitutu

    (51) Капитан коробля делает ежедневный обход

    и видит запись в бортовом журнале «Капитан сегодня был пьян» ❗

    он вызывает боцмана, тот совсем молоденький и давай ему вставлять:

    — в бортовом журнале, пишут только НЕОРДИНАРНЫЕ СОБЫТИЯ, ты меня понимаешь ?

    — все понял, извинете исправлюсь..

    прошло три дня. Капитан снова с обходом, открывает журнал и видит

    «Капитан сегодня был ТРЕЗВ»

    чем вызвано недоверие ?

    Reply ↓
  53. Ish_2

    (52) Скажи , Соколиный Глаз , сколько мне набежало сверх 4 рублей ?

    Reply ↓
  54. Tatitutu

    (53) Приношу свои искренние извинения, я был не прав.

    Готов снова взять тебя в долю.

    Вчера сделал обработку доступной для скачки всем и тишина…

    Сегодня посмотрел статистику 😀

    (ну скрытый контроль на открытие программы 😀 — все гениально просто !

    точно могу сказать за сутки эту обработку запускали 567 раз

    (но у некоторых нет Интернета, кто то запускал по несколько раз)

    округлим до 600 * на 10 копеек то выходит ты в доле еще на 60 рублей.

    Обработка теперь только для ЗАРЕГИСТРИРОВАННЫХ пользователей ИСА

    Reply ↓
  55. Ish_2

    (54) Кхе..кхе.. Видишь ли , цена 10 коп. была назначена вчера…

    10 коп. — это просто смешно !

    Для серьезного мужчины — 12 коп. — самое то.

    Reply ↓
  56. Tatitutu

    (55) 11,50

    Reply ↓
  57. Ish_2

    (56) 11,75 !

    Reply ↓
  58. Tatitutu

    (57) с НДС ?

    Reply ↓
  59. Ish_2

    (58) с ЕСН ?

    Reply ↓
  60. Ish_2

    (58) 11,80 с НДС. Ок ?

    Reply ↓
  61. Tatitutu

    (60) да шо мы из- за каких то копеек ?

    11,70 и по рукам 😉

    Reply ↓
  62. Ish_2

    (61) 11,80. Точка.

    Reply ↓
  63. Tatitutu

    (63) ну тогда выплата после 15 числа следующего месяца

    Reply ↓
  64. Tatitutu

    (62) что то масть пошла не дуром, тебе куда бабло слить — не хочу быть в должниках )))

    Reply ↓
  65. Tatitutu

    (65) За сегодня !!! Обработку открыли (запустили) уже 1896 раз !

    я вижу это по статистике. еще немного и будет 2010 ! Ура !

    P/S Модераторы, СуперМодераторы,support — не злитесь на меня, я не специально

    просто Новогодний подарок ! С Новым Годом и до Нового Года !

    если я появлюсь раньше 11.01.11 баньте меня — я уже весь в празднике 😀 😀 😀

    Reply ↓
  66. Ish_2

    (64) Ишь ты прыткий какой ! После 15 — как договорились.

    Reply ↓
  67. vawd

    Купился на развод …… 🙁

    Reply ↓
  68. maxchaos

    Плюс за позитив и чувство юмора!

    Reply ↓
  69. Andzhej

    ээээ, а для 8.2 есть такая? 🙂

    Reply ↓

Leave a Comment

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