寻找一种方法来生成给定 PHP 数组的文件名安全哈希。我目前正在做:
$filename = md5(print_r($someArray, true));
...但是使用 print_r() 生成每个数组唯一的字符串感觉“hacky”。
对于更清洁的方法有什么好主意吗?
编辑 好吧,似乎每个人都认为序列化更适合这项任务。有什么理由吗?我不担心在散列后检索有关变量的信息(这很好,因为它是单向散列!)。感谢您的回复!
最佳答案
使用 md5(serialize())
代替 print_r()
。
print_r()
的目的主要是作为调试功能,并被格式化为纯文本显示,而 serialize()
将数组或对象表示编码为紧凑的用于在数据库或 session 存储(或任何其他持久性机制)中持久化的文本字符串。
关于php - 将整个 PHP 数组散列为唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097632/