ホームページ  >  記事  >  バックエンド開発  >  PHPのカスタム検証コード機能の問題

PHPのカスタム検証コード機能の問題

WBOY
WBOYオリジナル
2016-06-23 14:23:511045ブラウズ

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); $text 、 $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);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。