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