Alchemist
21.06.2015 - 11:41
Кто-нибудь знает всегда ли для идентичных входных агрументов gzdeflate() будет возвращать один и тот же результат ?
Я погонял тесты - вроде всегда, но хотелось бы уверенности. Гугл, увы, не помог...
ЗЫ: Спрашиваю потому что знаю, что gzencode(), например, может возвращать разный результат для одного инпута.
Для одних и тех же данных и параметров результат будет примерно один и тот же. Вроде когда строка архивируются то для алгоритма архивации берутся опорные элементы которые генерируются согласно алгоритма псевдослучайных чисел. Если по байтно сравнивать текст то могут быть отличия, но если предположить что результат это архивная строка тогда да, результат одинаковый.
_____________
Трус не играет в хокей
killer8080
21.06.2015 - 16:58
Цитата (Alchemist @ 21.06.2015 - 10:41) |
Кто-нибудь знает всегда ли для идентичных входных агрументов gzdeflate() будет возвращать один и тот же результат ? |
Я бы не стал на это полагаться.
А для чего нужна такая идентичность?
Alchemist
23.06.2015 - 17:59
Делаю на сайте интеграцию с системой заказа гостиниц. В большинстве случаев ID комнаты - это строка примерно в 10 символов. Но в отдельных, особо дебильных случаях это xml документ на 1,5 кб...
Поскольку эти случаи редки, то они не были обнаружены до этапа сертификации скрипта. Разумеется переделывать весь скрипт никто уже не будет, поэтому решение на котором я пока остановился - это переделывать все ID в "удобоваримые" строки путем base64_encode(gzdeflate()) и восстанавливать уже перед передачей во внешнюю систему.
Однако поскольку это все же IDшники - то и в моем скрипте они используются для поиска/идентификации комнат при общении с посетителями сайта. Паковать/восстанавливать их для каждого сравнения накладно - отсюда и вопрос: можно ли сравнивать упакованые строки ?
bestxp
23.06.2015 - 19:03
а что мешает их сравнить ? строки же
bestxp
23.06.2015 - 19:04
сделай проще
храни хеш от строки у себя как ID и оригинальный для других систем у себя ищи по этому ID в систему передавай тот который нужен
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.