需要在前台隱藏ID 的話,可以考慮使用此產品,生成的id 比較高大上,比較像Youtube、Youku、Weibo之類的id 名,例如:XNjkxMTc0MDQ4
官網:http://hashids. org/php/
Laravel 5 套件:https://github.com/vinkla/hashids
PHP中的簡單實用範例:
$hashids = new Hashids\Hashids('this is my salt'); $id = $hashids->encode(1, 2, 3); $numbers = $hashids->decode($id);
當然,包包很全,還有Composer package、Laravel 4 package、packLaravel 5 package、Laravel 、CodeIgniter spark、Symfony bundle、Kohana module、Wordpress plugin、CakePHP component、Silex package、Craft plugin featu等等。在官網可以找到連結
也支援JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Swift, Objective-C, C, C++11, Go, Lua, Elixir, ColdFusion, Groovy, Kotlin, Nim, VBA, CoffeeScript and for Node.js & .NET 語言
Laravel 5 使用
使用比較簡單,而且文件說明得已經比較詳細了。
按文檔說明安裝完包後,執行
php artisan vendor:publish
操作來生成配置文件,配置文件路徑:confighashids.php:
'alphabet'=> 'your-alphabet-string'
配置項是你打算讓加密後的字符串裡出現什麼字符,我用的是A-Z、a-z、0-9,後來發現好像與字元順序有關係,生成出來的隨機字串大小寫與數字分佈不太均勻,就使用PHP 的shuffle() 函數打亂一下順序生成了一組新的alphabet,之後看起來就比較高了。
使用範例:
// You can alias this in config/app.php. use Vinkla\Hashids\Facades\Hashids; Hashids::encode(4815162342); // We're done here - how easy was that, it just works! Hashids::decode('doyouthinkthatsairyourebreathingnow'); // This example is simple and there are far more methods available.