最近有個(gè)需求,就是把圖片驗(yàn)證碼轉(zhuǎn)化為base64格式,tp5框架自帶的think-captcha擴(kuò)展包可以實(shí)現(xiàn)。但是,它有個(gè)缺點(diǎn),不能獲取驗(yàn)證碼的值。在做前后端分離項(xiàng)目的時(shí)候,驗(yàn)證碼檢測有兩種方式,各有利弊。
和林格爾網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),和林格爾網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為和林格爾千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的和林格爾做網(wǎng)站的公司定做!
方式一:因?yàn)閟ession不能共享,所以通過傳遞唯一uuid,后端用redis存儲(chǔ)uuid對(duì)應(yīng)的驗(yàn)證碼,驗(yàn)證同理。
方式二:直接返回驗(yàn)證碼的同時(shí),把驗(yàn)證值也返回給前端,在前端去驗(yàn)證驗(yàn)證碼的有效性
下面不多說,看代碼。(如果你還有第三種方法,歡迎留言,共同學(xué)習(xí))
$width = 100;
$height = 30;
$size = 4;
$fontSize = 10;
$image = imagecreatetruecolor((int)$width, (int)$height);
$bgcolor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgcolor);
$content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0";
$captcha = "";
for ($i = 0; $i < $size; $i++) {
$fontsize = $fontSize;
$fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
$fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
$captcha .= $fontcontent;
$x = ($i * $width / 4) + mt_rand(5, 10);
$y = mt_rand(5, 10);
imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
imagepng($image);
$content = ob_get_clean();
imagedestroy($image);
$base64 = 'data:image/png;base64,' . base64_encode($content);
return json_encode(['code' => 0, 'data' => ['base64' => $base64, 'text' => $captcha], 'message' => '操作成功']);
新聞標(biāo)題:PHP原生圖片驗(yàn)證碼轉(zhuǎn)base64格式
URL地址:http://chinadenli.net/article16/dsogogg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站改版、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)