我想以这种格式为我的网站用户创建唯一ID
的pubId-john_34032
所以我想使用电子邮件字符串。
我有这个伪代码(但我希望它更快,更合乎逻辑,如果有意义的话)
如何将我的伪代码编写为PHP?
<?php
$var e(mysqlescape(get(emailform));
$var r(rand(3,34);
$var ex=(pubID-);
$var e=(replace(@/.); //users may enter 1@site.com so replace the at and .
$var e(first4strTo(e)); // get first four letters, example 1sit
$var e(e)+r(); // e is now 1site-1547
$var printStr e+ex //join the 1site-1547 with pubID- and done
?>
答案 0 :(得分:3)
PHP中的唯一ID有uniqid。你可以将它附加到任何字符串。为什么重新发明轮子?
答案 1 :(得分:2)
使用str_replace()
删除@
和.
字符,然后使用uniqid()
生成唯一标识符。最后,将它们连接在一起。
$email = 'user@gmail.com';
$str = 'pubID-' . str_replace(array('@', '.'), '', $email) . '_' . uniqid();
echo $str;
答案 2 :(得分:2)
我对Emmanuel N的答案没有回应的声誉。
以下是如何使用uniqid并抓住电子邮件地址的第一部分。
uniqid(substr($email, 0, strpos($email, '@')) . '_')
答案 3 :(得分:0)
我在这里看不到你的理由。原因:pubID-john_34032
您是否无法使用用户名并附加数据库生成的自动递增ID?类似的东西:
calvinfroedge_23923
然后,您只需要替换名称中的非白名单字符,并在名称和ID之间加上下划线。