将整个 PHP 数组散列为唯一值

2022-08-30 09:50:50

寻找一种方法来生成给定 PHP 数组的文件名安全哈希。我目前正在做:

$filename = md5(print_r($someArray, true));

...但是使用print_r()来生成每个数组唯一的字符串感觉很“黑客”。

有什么聪明的想法,以更干净的方式做到这一点?

编辑好吧,似乎每个人都认为序列化更适合这项任务。有什么原因吗?我不担心在散列变量后检索有关变量的信息(这很好,因为它是单向散列!感谢您的回复!


答案 1

请代替 使用 。md5(serialize())print_r()

print_r()的用途主要是作为调试函数,其格式设置为纯文本显示,而将数组或对象表示形式编码为紧凑的文本字符串,以便在数据库或会话存储(或任何其他持久化机制)中持久化。serialize()


答案 2

或者,您可以使用json_encode