在12306購(gòu)票的時(shí)候驗(yàn)證碼是一件特別令人煩惱的事情,現(xiàn)在分享一個(gè)可以識(shí)別圖片驗(yàn)證碼的功能,PHP仿12306官網(wǎng)圖片驗(yàn)證碼功能
生成驗(yàn)證碼的demo使用模型model讀取圖庫(kù),有需要對(duì)接框架的朋友可以自己修改,如下:
<?php
# 引入測(cè)試的數(shù)據(jù)庫(kù)model
require_once dirname(__FILE__).'/Model.php';
# 引入驗(yàn)證碼核心類(lèi)庫(kù)
require_once dirname(dirname(__FILE__)).'/vendor/Vif.php';
$model = new Model('vif_type');
# 1、先獲得隨機(jī)出來(lái)的分類(lèi)
$find = $model->order('rand()')->find();
# 2、根據(jù)隨機(jī)分類(lèi),獲得指定數(shù)量的圖片,你想幾張都可以,越多越安全
$num = 4;
$model = new Model('vif_img');
$yes_list = $model->field('vi_id, vi_url')->where('vt_id = '.$find['vt_id'])->order('rand()')->limit($num)->select();
# 3、再隨機(jī),獲得4張除了指定分類(lèi)外的其他圖片
$no_list = $model->field('vi_id, vi_url')->where('vt_id != '.$find['vt_id'])->order('rand()')->limit($num)->select();
$obj = new Vif();
# 4、調(diào)用驗(yàn)證碼類(lèi)庫(kù):將兩組圖片隨機(jī)打亂合并成一組新數(shù)據(jù)
$img_list = $obj->MergeImg($yes_list, $no_list, $find['vt_title']);
echo $img_list; 判斷圖片驗(yàn)證碼是否正確:
<?php
# 引入驗(yàn)證碼核心類(lèi)庫(kù)
require_once dirname(dirname(__FILE__)).'/vendor/Vif.php';
$vif = $_POST['id'];
$obj = new Vif();
# 4、調(diào)用驗(yàn)證碼類(lèi)庫(kù):將兩組圖片隨機(jī)打亂合并成一組新數(shù)據(jù)
$img_list = $obj->VifResult($vif);
echo $img_list;






