Safari от Apple — Удивительно прогрессивный веб-браузер




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

33 Comments

  1. Арчибальд

    Бабки с яблока снял? 😉

    Reply
  2. vasilykushnir

    Судя по картинкам, вещь прикольненькая. Попробуем, попробуем….

    Reply
  3. Altair777

    (1) не просто снял, я в нем действительно работаю 😀

    Reply
  4. gavril

    Хром лучше и быстрее с сервисами гугла работает, потому на нем сижу в ПК.

    На сафари в основном на iOS сижу.

    Reply
  5. Altair777

    (4) я пробовал Chrome, но он мне не приглянулся и я его снес. Тогда мне очень понравилось сообщение в Хроме при заходе в почту Гугла — что этот браузер не может работать с этим сайтом. 😀 Или наоборот, уже точно не помню, но суть одна и та же.

    До Сафари работал на Опере и держал ИЕ для некоторых сайтов.

    Reply
  6. gavril

    (5) У меня на ПК винда (ибо 1С), на винде сафарии не ахти. Хром быстрый (быстрее всего что пробовал). Из-за того, что много приходится работать с ГуглАпс (Доки, вейв и т.д.) пока оптимальней броузера на встречал. Тот же Gears в Хроме даже 1С-Веб клиент использует, что ускоряет время работы ВЕБ-форм. На сколько мне известно Сафари с ВебФормами не работает.

    Опера мне не нравится, странички не отображает и т.д.

    В мобильном же гаджете Сафари очень и очень (странно было б ожидать другого от родного для iOS броузера 🙂 )

    Reply
  7. Altair777

    (6) на счет быстроты — по моим субъективным оценкам Сафари быстрее Оперы, а Оперу я люблю 😀 и зря наговаривать на нее не буду.

    Reply
  8. eeeio

    пользуюсь хромом. в сафари разделение строк адреса и поиска — прошлый век, хотя развитая работа с историей и закладками — это плюс (надо для хрома расширение найти такое же).

    синхронизация настроек с интернет-сервера есть в сафари? куча расширений и тем есть?

    Reply
  9. vasilykushnir

    (7) Но и весит он не слабо — более 30 метров. (кто бы сейчас меня послушал… — вес в метрах — мозги снесет).

    А что за лобуда Галерея расширений?

    Reply
  10. Altair777

    (8) Самое лучший поиск из адресной сторки — в Опере 😀

    еще не знаю, но как только узнаю — отпишусь

    Reply
  11. Altair777

    (9) ой, не смешите меня — 30 метров 🙂

    ZverDVD_v2010.3.iso — 4’660’871’168 байт

    Reply
  12. Agema

    Давно пользуюсь, как приобрел айфон. с каждым обновлением улучшается на порядок.

    гуглехромалку выкинул — шпионский продукт. Заменил на SRWare Iron : http://www.srware.net/news/

    Reply
  13. Altair777

    (8) (9) вот нашел http://safariplugins.ru/

    Reply
  14. anig99

    хехе… 1с 8.2 веб-версия вполне работает на IPhone Safari….

    Reply
  15. lookindenis

    имхо

    Safari — не на Mac…

    на ХР юзал, снес =)

    Chrome удалил не устанавливая, только по слухам =)

    «высокие» скорости, за счет качества — не по мне.

    лиса, на сегодня для меня = оптимально.

    но за статью спс =)

    +

    Reply
  16. WKBAPKA

    а в чем прикол? ну напишите статью про тот же Crome! хоть Crome в некоторых местах мне не нравиться, но ёпера тяжелее!

    Reply
  17. WKBAPKA

    а лиса не понятная и плоха с маштабированием работает

    Reply
  18. WKBAPKA

    сколько людей, столько и мнений

    Reply
  19. Tokiy

    Кстати, именно эту, http://lab.simurai.com/css/umbrui/ , страничку пробовал в 5 браузерах: IE, Mozilla Firefox, Google Chrome, Opera и Safari на Windows 7.

    Правильно открыл только Google Chrome и Safari.

    Сам работаю в лисе, как то больше нравится. Я думаю в каждом браузере есть как преимущества так и недостатки. Но лиса кажется более удобной из всех. 🙂

    Reply
  20. Sintson

    Симпатичный, конечно, но тормозной.

    Я хромом пользуюсь, ничего лучше не видел! 😉

    Reply
  21. Armando

    Пользуюсь оперой. Не нашел привычных вещей:

    — прокрутка менее плавная, чем в опере

    — управление мышью, очень привык (http://www.opera.com/browser/tutorials/gestures/ )

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

    — не запоминает открытые вкладки. т.е. если закрыть браузер с открытыми вкладками, то при открытии браузера этих вкладок уже не будет.

    — нельзя фиксировать вкладки. что-то типа защиты от случайного закрытия.

    — нет фулскрина (F11 не работет, в меню тож не нашел)

    — нет блокировки контента (рекламы)

    — не нашел как включить заявленный Web Inspector и где настраивается заполнение форм.

    Возможно все это есть, но после первого запуска сафари я этого не нашел.

    Короче, что-то я пока не вдохновился. Либо слепо влюблен в оперу)))

    Reply
  22. alexabb

    поставил, попробовал, и снес к такой то матери. Неудобный и тормозной……

    Reply
  23. the1

    Забыл добавить приписку — «На правах реламы».

    А по сабжу — 5% рынка — это и есть самая лучшая оценка этого браузера.

    Reply
  24. the1

    Самый лучший просмотр истории посещенных сайтов

    Reply
  25. DimaP

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

    По скорости гугл-хром быстрее. Пользовался ётой, а там бывает такое мерзкое соединение, что просто пипец, так вот когда я установил гуглхром, то понял, что медленное соединение — это в большей части сказки, просто браузеры медленные. Ещё понравилось то, что если какая-то вкладка не отвечает, то весь браузер не виснет.

    Файрфокс — второй браузер у меня, привычнее, чем ИЕ. А Сафари мне почему-то напоминает ИЕ. Хотя он хороший, может быть даже безопаснее всех, но какой-то консервативный.

    Reply
  26. Altair777

    (16)-(20) Забавно. У меня и в мыслях не было начинать очередную войну браузеров. 😀

    Reply
  27. Altair777

    (23)

    А по сабжу — 5% рынка — это и есть самая лучшая оценка этого браузера.

    Тогда надо признать, что самый лучший браузер всех времен и народов — это ИЕ 😀 Ведь его доля на мировом рынке сейчас составляет 49,87%

    Reply
  28. (27)

    Тогда надо признать, что самый лучший браузер всех времен и народов — это ИЕ Ведь его доля на мировом рынке сейчас составляет 49,87%

    IE9 рвет всех, правда он только под Win 7 и пока beta. Что будет, когда выйдет конечный.

    Reply
  29. Altair777

    (28) пока что он никого не порвал 😀

    Каково соотношение установленных Вин7 по отношению к ХР?

    И на скольких из них основным браузером является ИЕ?

    Reply
  30. Altair777
  31. drkhaired

    Да уж. Помоему сафари самый бедный по наваротам из современных обозревателей. ИЭ9 даже бета неплох, если еще учесть интеграцию с системой. Но пользуюсь лисой, поскольку только тут есть очень удобные нужные мне надстройки, например загрузка флещ контента, будь то музыка или видео. Есть удобная надстройка по блокировке содержимого страниц, настройка по правой кнопке мыши, и просмотр содержимого страницы.

    Хром неплох, но чисто субъективно для меня неудобен(читай непривычен), поскольку нужно привыкать, многое реализовано не так. А честно говоря привыкать к тому же самому но в новом исполнении не вижу смысла заморачиваться. Не люблю «изобретение велосипеда».

    Ну а в сафари качественно ничегошеньки нового, а насчет элегантности, вообще писать не стоит, поскольку у каждого свое понятие этого.

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

    Reply
  32. drkhaired

    Кстати, в каком обозревателе это можно сделать легче? (рисунок)

    Reply
  33. drkhaired

    «На какой бы платформе он ни работал. Safari — первый браузер, позволяющий пользоваться полноценным Интернетом с мобильных устройств. » — да не правда, это опера. Сафари работает на весьма ограниченном количестве мобильных устройств, дай бог, что бы он дотянулся до 1%

    «Safari — это не просто новый браузер. Это новые принципы работы в Интернете. » — то же, новых принципов работы в инете вот уже как лет 30 не изобреталось. Вот когда он будет работать в интернете без подключения к интернету — это будет новый принцип

    Reply

Leave a Comment

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