寻找一种方法来生成给定PHP数组的文件名安全哈希.我现在正在做:
$filename = md5(print_r($someArray, true));
Run Code Online (Sandbox Code Playgroud)
...但是感觉"hacky"使用print_r()生成每个数组唯一的字符串.
有什么明智的想法,以更清洁的方式做到这一点?
编辑 嗯,似乎每个人都认为序列化更适合这项任务.有什么理由吗?我不担心在变量散列后检索变量的信息(这很好,因为它是单向散列!).谢谢你的回复!
Mic*_*ski 70
用md5(serialize())
而不是print_r()
.
print_r()
其目的主要是作为调试功能,并且格式化为纯文本显示,而serialize()
将数组或对象表示编码为紧凑文本字符串,以便在数据库或会话存储(或任何其他持久性机制)中保持持久性.
gen*_*nry 24
或者你可以使用json_encode