php新手,自己寫了一下輕量級別的mvc框架,非常簡陋,今天添加驗證碼類的時候發(fā)現(xiàn)圖片一直沒有辦法顯示出來,于是懷疑驗證碼類本身有點問題,但是通過在驗證碼類中調(diào)用自己測試,發(fā)現(xiàn)可以正常的顯示驗證碼。所以排除了驗證碼類自己的問題,在嘗試百度以后并木有發(fā)現(xiàn)相應的解決方法
homestead虛擬機:
驗證碼類如下所示,當時寫這個類的時候測試結(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ì)框架的文件分布為:
如果您感覺麻煩,會占用您的時間,我愿意付費請您進行解答
謝謝
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。