<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Старайтесь сразу читать красный текст 😉
Прикольно 😀
я не только так читаю но и пишу 😉
(3) 😀
Реально, можно еще и гласные буквы повыкидывать 😀
байан, но красива!
Улыбнуло 😀
Старый боян, но за реализацию плюс.
Серьезная рпоблема у мну, я щас часто буквы при напечатании местами меняю попароно — уж не знаю че делать — может пора к спихологу. Вот так. Если я еще тескт такой начну читать то ваще — прощая письменность
(8) Интересно было попробовать сделать это механизмами 7.7 😉
(10) Я видел где-то.
(11) У меня дома на где-то на компе валяется подборка иллюзий. Там мне приглянкулся этот текст, но поскольку эту подборку я так и не смог откопать, то решил написать свою))
Хм, напомнило историю про партизанские шифровки во время ВОВ. Чтобы немцы не смогли перевести записки, партизаны писали нарочно с ошибками.
Пирлоьонк! Но етсь ткаие тетксы, ктороые при пваьолрним раожплсонеии бкув не пемшойь, не то что так.
Птилоучся тоакй ткест прсотчеь? )))
Английские ученые потратили кучу времени на поиск кекста который можно вот так прочесть…
Слава английским ученым…
Я такую беду писал. Исследовал степень узнаваемости 🙂 Твоя Перемешайка неправильно работает. Чтобы читались все тексты надо менять местами только соседние буквы.
Следует ввести регуляттор «силы» перемешивания, тогда нормуль будет…
(16-17) Писалось от нечего делать)) Сейчас конец года, поэтому не до нее будет, а там посмотрим…
забвано 🙂
боянищще 🙂
afanasko, ваш текст можно бы было прочесть, если бы Вы использовали то, что указано в статье, а именно: первая и последняя буква должны быть на своих местах
(14) Цитата нормально читается при быстром прочтении. Главное не всматриваться сильно в текст, иначе глаза сами к ошибкам привязываются и дальше читать становится труднее. )))
(21) Я перемешивал текст этой программой. Наверное, она написана в соответствии со статьей, или нет?
(23) походу в программе есть недоработки… 🙂
(24)
(23)
Программа — это слишком громко сказано)
А работет она на 100% пракильно, но так, как ее запрограммировали, другое дело, что можно многое переделать и деделать, но зачем? Врятли она кому-нибудь пригодится, а просто побаловаться можно))
Напишу еще раз: кроме точки, запятой и пробела не должно быть никаких других знаков (кроме букавок), т.к. все остальное обработка воспринимает как обычный текст и мешает почем зря… 😉
Спасибо за идею и реализацию, можно прикрутить для защиты….