Я пытаюсь портировать большой кусок кода Python на php — при этом я нашел одну строку, для которой я не могу найти эквивалент:
instance = resp.get(
'instance',
uuid.uuid4().hex.encode('utf-8')
)
sha = hashlib.sha1(
self.username.encode('utf-8') + instance
)
self.params.update({'id': sha.hexdigest().upper()})
я обнаружил https://github.com/ramsey/uuid сгенерировать uuid4 и попытаться подражать выше так:
if (isset($resp['instance']))
{
$instance = $resp['instance'];
}
else
{
$uuid4 = Uuid::uuid4();
$instance = utf8_encode(dechex($uuid4->toString()));
}
$sha = sha1(utf8_encode($this->username) . $instance);
$this->params['id'] = strtoupper($sha);
Это, кажется, не дает такие же результаты. Может ли кто-нибудь помочь мне получить такой же результат в php, как в python. Благодарю.
Оказывается, что функция dechex не совпадает с гексом питона.
В этом случае результатом шестнадцатеричной функции было удаление тире из uuid. Решил это с помощью str_replace.
Других решений пока нет …