我試圖創建一個文件名散列(鍵)和文件名(值)的數組,但我使用的大多數功能似乎並不像我想要他們...php bin2hex,base64_encode;不同的輸入相同的輸出(在循環中)?
爲什麼這些函數在使用一個循環導致相同的輸出字符串,而輸入字符串變化? 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()`應該工作正常。 – 2011-02-16 17:40:02
你應該再看一遍。鑰匙確實不同。 `3132`是12.pdf的十六進制編碼,11.pdf是`3131`。也許你應該解釋你的用例。由於您現在使用的密鑰只是混淆的文件名。 – mario 2011-02-16 17:42:30