php 自定义验证码函数的问题

WBOY
풀어 주다: 2016-06-23 14:23:51
원래의
1075명이 탐색했습니다.

php

请教各位一个问题:
php 自定义验证码函数
function random_text($count, $rm_similar = false)
{
    $chars = array_flip(array_merge(range(0, 9), range('A', 'Z')));
    if ($rm_similar)
    {
        unset($chars[0], $chars[1], $chars[2], $chars[5], $chars[8],
            $chars['B'], $chars['I'], $chars['O'], $chars['Q'],
            $chars['S'], $chars['U'], $chars['V'], $chars['Z']);
    }

    for ($i = 0, $text = ''; $i      {
        $text .= array_rand($chars);
    }
    return $text;
}
?>
这段代码是什么作用了,$chars[5]这些是啥意思:unset($chars[0], $chars[1], $chars[2], $chars[5], $chars[8],
            $chars['B'], $chars['I'], $chars['O'], $chars['Q'],
            $chars['S'], $chars['U'], $chars['V'], $chars['Z']);
这个函数调用的话,怎么调用了,给个例子。

回复讨论(解决方案)

你运行下不就明白了。
unset 释放给定的变量

这只是取随机文本的, 不是取验证码的 

<?phpfunction random_text($count, $rm_similar = false){    $chars = array_flip(array_merge(range(0, 9), range('A', 'Z')));//生成一个二维数组[0-9][A-Z]数组的值依次递增  比如['A']=10,['B']=11 ....    if ($rm_similar)    {        unset($chars[0], $chars[1], $chars[2], $chars[5], $chars[8],            $chars['B'], $chars['I'], $chars['O'], $chars['Q'],            $chars['S'], $chars['U'], $chars['V'], $chars['Z']);//根据参数$rm_similar(默认为false)来判断是否释放上面这些数组的值    }    for ($i = 0, $text = ''; $i < $count; $i++)    {        $text .= array_rand($chars);//根据$count来随机取的数组中的值    }    return $text;}?>
로그인 후 복사


示例:
//1.取7位文本代码,并去除unset里的值 random_text(7,true);//2.取5位文本代码,不去除unset里的值,这里第二个参数按函数默认的来即为falserandom_text(5);
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿