Давно не писал в эту рубрику «чтиво за последнее время». Забыл, забегался да и дачный сезон 😉
Жорж-иномирец 1-4. Автор: Сергей Панченко. Сюжет: обычный человек после ДТП получил возможность ходить между измерениями, коих бесконечно. Там он находит друзей ну и разные приключения конечно. Читабельность: 4
Попаданец с огромным потенциалом. Автор: Сергей Полев. Сюжет: хорошо поживший в своём мире человек попадает в другое измерение в другое тело. Там где магия и приключения. Читабельность 4.
Триллионер из трущеб 1-4. Автор: Сергей Полев. Сюжет: Попаданец в мир где правит система. Обладает уникальным навыком — тратить заработанные деньги на бесконечную прокачку навыков. Читабельность 3.
Грани. Автор: Валентин Дмитриев. Сюжет: Два друга встречают основательницу загадочной фирмы «Пирамида», которая может исполнять любые желания. Читабельность 2. Не дочитал..
Звёзды — холодные игрушки. Автор: Сергей Лукьяненко. Третья или четвертая перечитка уже. Читабельность 5 😉
Сборник Гаджет 1-10. Автор: Сергей Лукьяненко. Сборник фантастических рассказов на различные тематики. Читабельность 4.
Задача: Есть некая очень захламленная сторонними элементами страница в разметке html. Необходимо преобразовать находящуюся на ней таблица в массив данных.
Решение: сначала вычленим «грязное» содержимое таблицы между тегами <tbody></tbody>, затем преобразуем его в DOM документ, а далее уже распарсим его обходами и разложим элементы в массив.
Получилось что-то вроде:
//вычленяю таблицу
$t1=explode("<tbody>",$res);
$t2=explode("</tbody>",$t1[1]);
$tbody="<html><head><meta charset='UTF-8'></head><body><table><tbody>".$t2[0]."</tbody></table></body></html>";
$mass=[];
$dom = new domDocument('1.0', 'utf-8');
@$dom->loadHTML($tbody);
$tables= $dom->getElementsByTagName('table');
foreach ($tables as $table) {
$trs= $table->getElementsByTagName('tr');
foreach ($trs as $tr) {
$tds=$tr->getElementsByTagName('td');
$info=[];
foreach ($tds as $td) {
$info[]=$td->textContent;
};
$mass[]=$info;
}
}
В одном из проектов, скрипт парсит сайт на bitrix. С какого то момента, при установке параметров таблицы отдаваемой по ajax, стала выводиться ошибка «Request is not XHR». Быстрый гуглинг решения не дал. Стал кропотливо сравнивать заголовки которые отдаются запросом в браузере и заголовки который отдавал в скрипте. Отличие нашлось относительно быстро, страница на сайте добавляла дополнительный заголовок «Bx-ajax:true». В результате модифицировал скрипт следующим образом:
До недавнего времени (еще несколько лет назад) для хранения данных учётных записей в 1С единственной защитой было — показывать поле с паролем со «звездочками». Сам же пароль хранился в практически открытом виде в реквизитах формы. Ну.. возможно это и не безопасно.. Новая методика хранения чувствительных данных в 1С призвана эту безопасность увеличить. Работа с безопасным хранилищем в 1с, Поэтому в БСП были внедрены функции общего назначения «ПрочитатьДанныеИзБезопасногоХранилища» и «ЗаписатьДанныеВБезопасноеХранилище».
В чём разница между хранением в реквизитах и новой методикой:
Имея доступ к объекту метаданных, пользователь может прочитать содержимое реквизита с паролем, что невозможно при использовании безопасного хранилища. Для исключения случаев несанкционированного доступа к безопасному хранилищу получение и запись данных (паролей) возможна только в привилегированном режиме.
Данные в безопасном хранилище хранятся в закрытом виде и тем самым исключаются случаи непредумышленной «засветки» паролей.
Безопасное хранилище исключено из планов обмена, что предотвращает утечку паролей из информационной базы при обмене данными.