产生彩色的验证码
今天,我們把我們上一篇博文中的小項目做一個升級版本! ? 1、產生彩色的驗證碼 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />? 在上一篇文中,我們產生了隨機的驗證碼, 但是我們在有的網站上看到的驗證碼是彩色的,那么,我們怎么來產生彩色的驗證碼呢? ? 如果要產生彩色的驗證碼,那么就代表在網頁上的表現形式就是1AQ9這種形式了,那么就代表網頁中的源代碼的表現也就只能為<span style=”color:rgb(x,y,z)”>x</span>!原因很簡單,因為四個數字的顏色是不同的!當然,除了span標記,也可以由其他的標記來代替!如b、i、strong、em等內聯標記! ? 我們再來討論一個問題:如果有多個頁面都要使用隨機數的話,每個頁面都寫這么多代碼,這個工作量是可想而知的!那么最好的解決方法就是:首先將其封裝成自定義函數,并且其存儲在某一個文檔內,然后,我們想調用該函數的話,我們只需要調用該文件就可以了(還記得包含文件嗎?)! ? 好了,可以工作了! ? function? random() ? { ? ?????? $chars = "0123456789"; ? ?????? for($i=0;$i<4;$i++) ? ?????? { ? ????????????? $char = substr($chars,rand(0,strlen($chars)-1),1);???? ??????? ????????????? $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; ? ?????? } ? ?????? return $randChar; ? } ? ? 現在我們再將上面的函數來升一級,那就是:我們已經將隨機數的長度固定了,最好的方法是我們將系統的配置存儲在一個配置文件里,由用戶來決定隨機數的長度! ? 好了,我們來創建一個配置文件----config.include.php ? $config[“random”][“length”] = 4; ? 那么現在的問題就是如何將$config[“random”][“length”]的變量引入到函數內部,那就需要在函數內部添加global關鍵詞了! ? 那么函數就變成了 ? function? random() ? { ? ?????? global? $config; ?????? $chars = "0123456789"; ? ?????? for($i=0;$i<$config["random"]["length"];$i++) ? ?????? { ? ?????? ?????? $char = substr($chars,rand(0,strlen($chars)-1),1);??? ???????? ????????????? $randChar .= "<span style=\"color:rgb(".rand(50,180).",".rand(50,180).",".rand(50,180).")\">" . $char . "</span>"; ? ?????? } ? ?????? return $randChar; ? }
轉載于:https://blog.51cto.com/ibmplayer/237513
總結
- 上一篇: 为Web程序员解毒:9个IE常见Bug的
- 下一篇: 搞笑的面试经历