【发布时间】:2011-02-16 17:36:02
【问题描述】:
我试图创建一个文件名哈希(键)和文件名(值)的数组,但我使用的大多数函数似乎并没有像我希望的那样工作......
为什么在循环中使用这些函数会导致相同的输出字符串而输入字符串不同? md5 和 sha1 没有这个问题,但不可逆,这是必需的。
foreach ($files as $file)
{
debug(array(bin2hex($file), $file));
}
// result
app/views/helpers/monolith.php (line 45)
Array
(
[0] => 2f686f6d652f6d746572736d697474656e2f7075626c69635f68746d6c2f6170702f707269766174652f6d622f323031302f31322e706466
[1] => /home/mtersmitten/public_html/app/private/mb/2010/12.pdf
)
app/views/helpers/monolith.php (line 45)
Array
(
[0] => 2f686f6d652f6d746572736d697474656e2f7075626c69635f68746d6c2f6170702f707269766174652f6d622f323031302f31312e706466
[1] => /home/mtersmitten/public_html/app/private/mb/2010/11.pdf
)
app/views/helpers/monolith.php (line 45)
Array
(
[0] => 2f686f6d652f6d746572736d697474656e2f7075626c69635f68746d6c2f6170702f707269766174652f6d622f323031302f31302e706466
[1] => /home/mtersmitten/public_html/app/private/mb/2010/10.pdf
)
我希望这个例子更清楚......
【问题讨论】:
-
我无法与
bin2hex()交谈 - 也许它只是使用了输入字符串的一部分或扼流圈或其他东西 - 但base64_encode()应该可以正常工作。 -
你应该再看看。钥匙确实不一样。
3132是 12.pdf 的十六进制编码,3131是 11.pdf。也许你应该解释你的用例。因为您现在使用的密钥只是经过混淆的文件名。 -
我发布了一个更好(简单)的例子...