php新手,自己寫了一下輕量級別的mvc框架,非常簡陋,今天添加驗(yàn)證碼類的時候發(fā)現(xiàn)圖片一直沒有辦法顯示出來,于是懷疑驗(yàn)證碼類本身有點(diǎn)問題,但是通過在驗(yàn)證碼類中調(diào)用自己測試,發(fā)現(xiàn)可以正常的顯示驗(yàn)證碼。所以排除了驗(yàn)證碼類自己的問題,在嘗試百度以后并木有發(fā)現(xiàn)相應(yīng)的解決方法
homestead虛擬機(jī):
驗(yàn)證碼類如下所示,當(dāng)時寫這個類的時候測試結(jié)果是可以正常使用的,包括這一次在此類中調(diào)用本身,也是可以正常的使用的.
<?php
namespace framework\tools;
/*
* Captcha Tool Class
*/
class Captcha
{
private $width = 100; //Picture width
private $height = 30; //Picture height
private $number = 4; //Captcha words number
private $font_file = './STHUPO.TTF'; //TTF file path
private $font_size = 20; //Font Size
public function __set($p,$v)
{
if(property_exists($this, $p)){
$this -> $p = $v;
}
}
public function __get($p)
{
if(property_exists($this, $p)){
return $this -> $p;
}
}
//Make Captcha
public function makeImage()
{
//1. Make canvas
$image = imagecreatetruecolor($this->width, $this->height);
//2. Assign color
$color = imagecolorallocate($image, mt_rand(100,255), mt_rand(100,255), mt_rand(100,255));
imagefill($image, 0, 0, $color);
//3. Make words
$code = $this->makeCode();
//Store Captcha answer in session
session_start();
$_SESSION['code'] = $code;
for($i=0;$i<strlen($code);$i++){
imagettftext($image, $this->font_size, mt_rand(-30,30), ($this->width/$this->number)*$i+5, 20, mt_rand(0,100), $this->font_file, $code[$i]);
}
//Make 100 point
for($i=0;$i<100;$i++){
imagesetpixel($image, mt_rand(0,$this->width), mt_rand(0,$this->height), mt_rand(0,100));
}
//Make 10 line
for($i=0;$i<10;$i++){
$color = imagecolorallocate($image, mt_rand(100,150), mt_rand(100,150), mt_rand(100,150));
imageline($image, mt_rand(0,$this->width), mt_rand(0,$this->height), mt_rand(0,$this->width), mt_rand(0,$this->height), $color);
}
//3. Export to browser
header("Content-Type:image/png");
imagepng($image);
//4. Destory image
imagedestroy($image);
}
//Make code
public function makeCode()
{
//A-Z a-z
$upper = range('A','Z');
$lower = range('a','z');
//3-9
$number = range(3,9);
//merge
$code = array_merge($lower,$upper,$number);
shuffle($code);
$str = '';
for($i=0;$i<$this->number;$i++){
$str .= $code[$i];
}
//echo '<pre>';
//var_dump($str);
return $str;
}
}
然后就是調(diào)用這個類
public function makeCaptchaAction()
{
$captcha = new Captcha();
$captcha->font_file = './application/public/fonts/STHUPO.TTF';
$captcha->makeImage();
}
在瀏覽器端查看效果如下
我寫的這個劣質(zhì)框架的文件分布為:
如果您感覺麻煩,會占用您的時間,我愿意付費(fèi)請您進(jìn)行解答
謝謝
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。