首頁  >  文章  >  每日程式設計  >  php驗證碼怎麼實現的? (圖文+影片)

php驗證碼怎麼實現的? (圖文+影片)

藏色散人
藏色散人原創
2018-10-12 13:43:484872瀏覽

本篇文章主要介紹PHP實作驗證碼的具體想法方法。

我們在PHP專案開發過程中,關於後台登入介面中的驗證碼流程,基本上是不可或缺的,而產生驗證碼主要就是為了防止惡意註冊。

對於PHP新手來說,驗證碼製作也是一個必學的基礎知識點。當然驗證碼也是很多,如數字 字母組合驗證碼、中文驗證碼、數字驗證碼、圖片驗證碼等。

下面我們就透過具體的程式碼範例,為大家介紹簡單的數字 字母組合驗證碼的方法。

首先我們建立三個範圍的數組,並且將這三個數組合併成新數組,代碼如下:

<?php
$shuzi = range(0, 9);
$zimuda = range(&#39;A&#39;, &#39;Z&#39;);
$zimuxiao = range(&#39;a&#39;, &#39;z &#39;);
$arr = array_merge($shuzi, $zimuxiao, $zimuda);
echo "<pre class="brush:php;toolbar:false">";
var_dump($arr);

透過瀏覽器訪問,新數組內容如下:

array (size=62)
  0 => int 0
  1 => int 1
  2 => int 2
  3 => int 3
  4 => int 4
  5 => int 5
  6 => int 6
  7 => int 7
  8 => int 8
  9 => int 9
  10 => string &#39;a&#39; (length=1)
  11 => string &#39;b&#39; (length=1)
  12 => string &#39;c&#39; (length=1)
  13 => string &#39;d&#39; (length=1)
  14 => string &#39;e&#39; (length=1)
  15 => string &#39;f&#39; (length=1)
  16 => string &#39;g&#39; (length=1)
  17 => string &#39;h&#39; (length=1)
  18 => string &#39;i&#39; (length=1)
  19 => string &#39;j&#39; (length=1)
  20 => string &#39;k&#39; (length=1)
  21 => string &#39;l&#39; (length=1)
  22 => string &#39;m&#39; (length=1)
  23 => string &#39;n&#39; (length=1)
  24 => string &#39;o&#39; (length=1)
  25 => string &#39;p&#39; (length=1)
  26 => string &#39;q&#39; (length=1)
  27 => string &#39;r&#39; (length=1)
  28 => string &#39;s&#39; (length=1)
  29 => string &#39;t&#39; (length=1)
  30 => string &#39;u&#39; (length=1)
  31 => string &#39;v&#39; (length=1)
  32 => string &#39;w&#39; (length=1)
  33 => string &#39;x&#39; (length=1)
  34 => string &#39;y&#39; (length=1)
  35 => string &#39;z&#39; (length=1)
  36 => string &#39;A&#39; (length=1)
  37 => string &#39;B&#39; (length=1)
  38 => string &#39;C&#39; (length=1)
  39 => string &#39;D&#39; (length=1)
  40 => string &#39;E&#39; (length=1)
  41 => string &#39;F&#39; (length=1)
  42 => string &#39;G&#39; (length=1)
  43 => string &#39;H&#39; (length=1)
  44 => string &#39;I&#39; (length=1)
  45 => string &#39;J&#39; (length=1)
  46 => string &#39;K&#39; (length=1)
  47 => string &#39;L&#39; (length=1)
  48 => string &#39;M&#39; (length=1)
  49 => string &#39;N&#39; (length=1)
  50 => string &#39;O&#39; (length=1)
  51 => string &#39;P&#39; (length=1)
  52 => string &#39;Q&#39; (length=1)
  53 => string &#39;R&#39; (length=1)
  54 => string &#39;S&#39; (length=1)
  55 => string &#39;T&#39; (length=1)
  56 => string &#39;U&#39; (length=1)
  57 => string &#39;V&#39; (length=1)
  58 => string &#39;W&#39; (length=1)
  59 => string &#39;X&#39; (length=1)
  60 => string &#39;Y&#39; (length=1)
  61 => string &#39;Z&#39; (length=1)

這裡主要用到PHP中range函數,其表示根據範圍建立數組,包含指定的元素。 array_merge函數表示合併一個或多個陣列。

然後透過shuffle函數將新數組元素打亂,其KEY值跟隨元素被打亂。再透過array_rand函數隨機取出原數組的4個key值。最後將原數組的key遍歷輸出,得到4個隨機驗證碼。程式碼如下:

<?php
$shuzi = range(0, 9);
$zimuda = range(&#39;A&#39;, &#39;Z&#39;);
$zimuxiao = range(&#39;a&#39;, &#39;z &#39;);
$arr = array_merge($shuzi, $zimuxiao, $zimuda);
shuffle($arr);
$arr_rand = array_rand($arr, 4);
foreach ($arr_rand as $value) {
    echo $arr[$value];
}

附註:

shuffle :打亂陣列。

array_rand :從數組中隨機取出一個或多個單元   

最終透過瀏覽器訪問,每次刷新就會獲得新的隨機驗證碼如下:

php驗證碼怎麼實現的? (圖文+影片)

php驗證碼怎麼實現的? (圖文+影片)

#這篇文章就是關於PHP實作驗證碼的想法方法具體介紹,非常淺顯易懂,希望對需要的朋友有所幫助!

想要了解更多PHP相關知識,各位可以關注PHP中文網PHP影片教學,歡迎大家參考學習!

以上是php驗證碼怎麼實現的? (圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn