-2
我需要生成一堆不能重複的字符,我將它們添加到數據庫以重定向到另一個頁面。在php中爲URL生成字符串的最佳方法
E.g. www.website.com/lsdnlsgdngs
拉12,劉易斯,其他的東西
從數據庫,原因很明顯這不能被複制,因爲將與獲取數據的問題。
我需要生成一堆不能重複的字符,我將它們添加到數據庫以重定向到另一個頁面。在php中爲URL生成字符串的最佳方法
E.g. www.website.com/lsdnlsgdngs
拉12,劉易斯,其他的東西
從數據庫,原因很明顯這不能被複制,因爲將與獲取數據的問題。
不確定背後有什麼「canot be duplicated」。 我假設你想確保沒有其他進程/調用發生,以便爲不同目的生成相同的值。
然後你可以在充分唯一的數據 (例如會話id +當前時間+隨機數)上使用加密校驗和(MD5,SHA1)。如果您正在使用返回二進制數據的函數,請對此值使用bas64編碼(btoa)。
這仍然不是完全獨特的。你會遭受編碼值的衝突。但是,使用加密校驗和這是不太可能的。
如果您需要確保在所有情況下都具有唯一性(還會考慮這些值的使用期限),您需要在數據庫中查詢現有密鑰(或依賴唯一密鑰違規錯誤)以檢測重複項(並重復整個生成直到成功)。
但是,如果你正在使用的數據庫,你爲什麼不使用連續,序列或任何你的數據庫提供了獲取uniq的數據(那麼你仍然可以使用base64編碼來獲得安全的字符串)
真的沒什麼所以至於我不知道從哪裏開始,這個問題呢... –
閱讀這個:http://stackoverflow.com/questions/19926660/generating-unique-string-in-php-for-mysql-database – CodeGodie
我做了一個簡單的搜索,發現[this](http://stackoverflow.com/questions/1846202/php-how-to-generate-a-random-unique-alphanumeric-string) – DevDonkey