博客首页|TW首页| 同事录|业界社区

1. PHP可阅读随机字符串

此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。

01 /**************
02 *@length – length of random string (must be a multiple of 2)
03 **************/
04 function readable_random_string($length = 6){
05 $conso=array(“b”,”c”,”d”,”f”,”g”,”h”,”j”,”k”,”l”,
06 “m”,”n”,”p”,”r”,”s”,”t”,”v”,”w”,”x”,”y”,”z”);
07 $vocal=array(“a”,”e”,”i”,”o”,”u”);
08 $password=””;
09 srand ((double)microtime()*1000000);
10 $max = $length/2;
11 for($i=1; $i<=$max; $i++)
12 {
13 $password.=$conso[rand(0,19)];
14 $password.=$vocal[rand(0,4)];
15 }
16 return $password;
17 }

2. PHP生成一个随机字符串

如果不需要可阅读的字符串,使用此函数替代,即可创建一个随机字符串,作为用户的随机密码等。

01 /*************
02 *@l – length of random string
03 */
04 function generate_rand($l){
05 $c= “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″;
06 srand((double)microtime()*1000000);
07 for($i=0; $i<$l; $i++) {
08 $rand.= $c[rand()%strlen($c)];
09 }
10 return $rand;
11 }

3. PHP编码电子邮件地址

使用此代码,可以将任何电子邮件地址编码为 html 字符实体,以防止被垃圾邮件程序收集。
01 function encode_email($email=’info@domain.com’, $linkText=’Contact Us’, $attrs =’class=”emailencoder”‘ )
02 {
03 // remplazar aroba y puntos
04 $email = str_replace(‘@’, ‘@’, $email);
05 $email = str_replace(‘.’, ‘.’, $email);
06 $email = str_split($email, 5);
07
08 $linkText = str_replace(‘@’, ‘@’, $linkText);
09 $linkText = str_replace(‘.’, ‘.’, $linkText);
10 $linkText = str_split($linkText, 5);
11
12 $part1 = ‘’;
15 $part4 = ‘
’;
16
17 $encoded = ‘’;
18 $encoded .= “[removed](‘$part1′);”;
19 $encoded .= “[removed](‘$part2′);”;
20 foreach($email as $e)
21 {
22 $encoded .= “[removed](‘$e’);”;
23 }
24 $encoded .= “[removed](‘$part3′);”;
25 foreach($linkText as $l)
26 {
27 $encoded .= “[removed](‘$l’);”;
28 }
29 $encoded .= “[removed](‘$part4′);”;
30 $encoded .= ‘’;
31
32 return $encoded;
33 }

4. PHP验证邮件地址

电子邮件验证也许是中最常用的网页表单验证,此代码除了验证电子邮件地址,也可以选择检查邮件域所属 DNS 中的 MX 记录,使邮件验证功能更加强大。

01 function is_valid_email($email, $test_mx = false)
02 {
03 if(eregi(“^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$”, $email))
04 if($test_mx)
05 {
06 list($username, $domain) = split(“@”, $email);
07 return getmxrr($domain, $mxrecords);
08 }
09 else
10 return true;
11 else
12 return false;
13 }


上一篇: php算开始时间到过期时间的相隔的天数,同理可以实现相隔年,小时,分,秒等数
下一篇:21个经常用到的PHP函数代码段(二)

8条评论

  1. I consider, that you are not right. Let’s discuss it. Write to me in PM, we will communicate.

    hpixel

发表评论