Noted

一个简单的验证码原理

<?php    
    function vCode(){
        /*截取随机字符串的前4个字符*/
        $str = substr( str_shuffle('123456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'),0,4);
        
        /* 宽100 高40 的画布*/
        $img = imagecreatetruecolor( 100, 40 );
        
        /*给画布先分配一些颜色*/
        $bg = imagecolorallocate( $img, 0xff, 0xff, 0x99 );
        $black = imagecolorallocate( $img, 0, 0, 0 );
        
        /*使用 $bg 颜色填充背景色*/
        imagefilledrectangle( $img, 0, 0, 100, 40, $bg );

        /*图片写入随机验证码,该需要字体ttf文件*/
        imagettftext( $img, 12, 0, 20, 25, $balck, 'msyh.ttf', chunk_split($str,1,' ') );

        /*输出图片*/
        header('content-type:image/jpeg');
        imagejpeg( $img, '',100 ); 
        
        // imagejpeg( $img, 'a.jpg', 100 );
        // filename 参数为可选,如果省略,则原始图像流将被直接输出。
        // 要省略 filename 参数而提供 quality 参数,使用空字符串('')。
        // 通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。 
        
        /*随手销毁资源*/
        imagedestroy( $img );

    }

    vCode();

评论