• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php文件名和类名相同时include不起作用?

php 搞代码 3年前 (2022-01-23) 14次浏览 已收录 0个评论
文章目录[隐藏]

文件名:原来为ValidationCode.php
修改为validate.php后可以正常显示验证码,
浏览器中请求code.php文件中进行显示验证码

<code><?php    class ValidationCode{        private $width;        private $height;        private $num_chars;        private $image;        const BORDER = 1;        function __construct($width=60,$height=20,$num_chars=4){            $this->width = $width;            $this->height = $height;            $this->num_chars = $num_chars;        }                function showImage(){            $this->createImage();            $this->drawBorder();            $this->drawChars();            $this->outPic();        }                //create canvas         function createImage(){            $this->image = imagecreate($this->width,$this->height);            //$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));            $back = imagecolorallocate($this->image,0,0,0);            $border = imagecolorallocate($this->image,255,255,255);            imagefill($this->image,0,0,$back);            //imagefilledrectangle($thid->image,self::BORDER,self::BORDER,$this->width-self::BORDER,$this->height-self::BORDER,$border);            //imageline($this->image,1,1,100,100,$rand_color);            //$this->outPic();        }        //draw border        private function <strong>)本文来(源gaodai#ma#com搞@@代~&码*网2</strong><pre>搞代gaodaima码

drawBorder(){ $outer_bg_color = imagecolorallocate($this->image,0,0,0); $inner_bg_color = imagecolorallocate($this->image,255,255,255); imagefill($this->image,0,0,$outer_bg_color); imagefilledrectangle($this->image,self::BORDER,self::BORDER,$this->width-self::BORDER-1,$this->height-self::BORDER-1,$inner_bg_color); } //create char content function createChar(){ $rand_ascii=””; $rand_type = rand(0,2); switch($rand_type){ case 0: $rand_ascii = rand(48,57); break; case 1: $rand_ascii = rand(65,90); break; case 2: $rand_ascii = rand(97,122); break; } $rand_str = sprintf(“%c”,$rand_ascii); return $rand_str; } //draw char private function drawChars(){ $x = $this->width/$this->num_chars+1; $y = $this->height/2; for($index = 0; $indexnum_chars; $index++){ $rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255)); imagechar($this->image,3,$x*$index+2,$y-$y/2,$this->createChar(),$rand_color); } } //out pic private function outPic(){ header(“content-type:image/png”); imagepng($this->image); } function __destruct(){ imagedestroy($this->image); } } /*$code = new ValidationCode(); //echo $code->createChar(); $code->showImage();*/?>

code.php

<code><?php     require_once("validate.php");    $code = new ValidationCode();    //echo $code->createChar();    $code->showImage();  ?></code>

这个问题已被关闭,原因:已经自己找到问题原因

回复内容:

文件名:原来为ValidationCode.php
修改为validate.php后可以正常显示验证码,
浏览器中请求code.php文件中进行显示验证码

<code><?php    class ValidationCode{        private $width;        private $height;        private $num_chars;        private $image;        const BORDER = 1;        function __construct($width=60,$height=20,$num_chars=4){            $this->width = $width;            $this->height = $height;            $this->num_chars = $num_chars;        }                function showImage(){            $this->createImage();            $this->drawBorder();            $this->drawChars();            $this->outPic();        }                //create canvas         function createImage(){            $this->image = imagecreate($this->width,$this->height);            //$rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));            $back = imagecolorallocate($this->image,0,0,0);            $border = imagecolorallocate($this->image,255,255,255);            imagefill($this->image,0,0,$back);            //imagefilledrectangle($thid->image,self::BORDER,self::BORDER,$this->width-self::BORDER,$this->height-self::BORDER,$border);            //imageline($this->image,1,1,100,100,$rand_color);            //$this->outPic();        }        //draw border        private function drawBorder(){            $outer_bg_color = imagecolorallocate($this->image,0,0,0);            $inner_bg_color = imagecolorallocate($this->image,255,255,255);            imagefill($this->image,0,0,$outer_bg_color);            imagefilledrectangle($this->image,self::BORDER,self::BORDER,$this->width-self::BORDER-1,$this->height-self::BORDER-1,$inner_bg_color);        }                    //create char content          function createChar(){            $rand_ascii="";            $rand_type = rand(0,2);            switch($rand_type){                case 0:                    $rand_ascii = rand(48,57);                     break;                case 1:                     $rand_ascii = rand(65,90);                   break;                case 2:                     $rand_ascii = rand(97,122);                   break;            }            $rand_str = sprintf("%c",$rand_ascii);            return $rand_str;        }                    //draw char         private function drawChars(){            $x = $this->width/$this->num_chars+1;            $y = $this->height/2;            for($index = 0; $indexnum_chars; $index++){                $rand_color = imagecolorallocate($this->image,rand(0,255),rand(0,255),rand(0,255));                imagechar($this->image,3,$x*$index+2,$y-$y/2,$this->createChar(),$rand_color);            }        }        //out pic        private function outPic(){            header("content-type:image/png");            imagepng($this->image);        }                 function __destruct(){             imagedestroy($this->image);         }    }        /*$code = new ValidationCode();    //echo $code->createChar();    $code->showImage();*/?></code>

code.php

<code><?php     require_once("validate.php");    $code = new ValidationCode();    //echo $code->createChar();    $code->showImage();  ?></code>

<body>

测试:入口代码

<code><?phprequire_once("ValidationCode.php");//include_once("ValidationCode.php");$code = new ValidationCode();//echo $code->createChar();$code->showImage();</code>

文件名:

测试结果:

结论:include的时候文件名跟类名没有关系。结果是可以的。我不知道你的为什么不可以。但是我测了是可以的。

真的假的啊!文件名和类名一样引用不起作用,这么神奇!有没有出什么错误提示


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php文件名和类名相同时include不起作用?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址