我需要生成一个随机字符串以用作URL的一部分。
我正在使用laravel 5.6
,目前正在执行此操作:
$url = '/controller/' . str_slug(str_random(8)) . '/review';
我想知道我是否真的需要str_slug()
的开销。我似乎无法找到任何表明str_random()
是否生成URL安全字符串的内容。
答案 0 :(得分:3)
str_random()
只会包含字母数字字符(A-Z,a-z,0-9)。
算法采用一串随机bty,base64对字节进行编码,然后删除三个允许的特殊字符(/
,+
和=
)中的任何一个。
无需拨打str_slug()
。
Here is a link to the function implementation,如果您想亲自查看代码。
答案 1 :(得分:0)
str_random
将提供大写和小写大小写字符。由于URL通常不区分大小写,因此URL的变化将远远少于str_random
实际生成的变化,但是我想这对您来说不是一个大问题。
str_slug
将小写随机string
,但这将是它所做的唯一更改,因此,如果要获得相同的效果,可以只使用strtolower(str_random(8))