加扰PHP字符串

时间:2011-12-30 17:57:41

标签: php

我想以这种格式为我的网站用户创建唯一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
?>

4 个答案:

答案 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之间加上下划线。