Production of image verification code in PHP 5
1. Application Scenarios
In WEB websites, image verification codes are often used to prevent malicious user registration, posting and other scenarios. In PHP, image verification code is mainly completed through the API provided by the GD library.
2. Implementation method
Verification codes are generally a combination of random numbers and letters, and can be easily implemented through random functions and hexadecimal functions dechex. The most critical issue is how to generate images.
<?php //生成随机数-》创建图片-》随机数写进图片 -》输出到浏览器 for($i=0;$i<4;$i++) { $rand .= dechex(rand(1,15)); } $im = imagecreatetruecolor(100,30);// 新建一个真彩色图像 x就是宽 ,y就是高 //设置颜色 // 为一幅图像分配颜色(相当于 PhotoShop 的调色板) // imagecolorallocate ( resource image, int red, int green, int blue ) 返回一个标识符,代表了由给定的 RGB 成分组成的颜色。 $bg = imagecolorallocate($im,0,0,0);//第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色。代表了由给定的 RGB 成分组成的颜色 $te = imagecolorallocate($im,225,225,225); //把字符串写在图像左上角 //绘图函数 imagestring ( resource image, font, int x, int y, string s, int col ) //用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。 imagestring($im,5,rand(3,70),rand(0,16),$rand,$te); //直接输出图像到浏览器 header("Content-type: image/jpeg"); // imagejpeg ( resource image [, string filename [, int quality]] ) filename 参数为可选,如果省略,则原始图像流将被直接输出。要省略 filename 参数而提供 quality 参数,使用空字符串('')。通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。 imagejpeg($im); ?>
3. Make complex image verification codes
Sometimes the verification code must set up some interference in order to prevent it from being recognized by some image recognition tools. For example, randomly add some lines or dots to the picture. This is mainly achieved through the imageline() and imagesetpixel() functions. Even make Chinese verification code.
<?php for($i=0;$i<4;$i++) { $rand .= dechex(rand(1,15)); } $im = imagecreatetruecolor(100,30); $bg = imagecolorallocate($im,0,0,0); $te = imagecolorallocate($im,225,225,225); //画线条 for($i=0; $i<3; $i++){ $te2 = imagecolorallocate($im,rand(0,225),rand(0,225),rand(0,225)); //imageline ( resource image, int x1, int y1, int x2, int y2, int color ) 用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段。 imageline($im,rand(0,100),0,rand(0,100),rand(0,30),$te2); } //画点 for($i = 0; $i < 100; $i++){ //imagesetpixel ( resource image, int x, int y, int color ) 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。 imagesetpixel($im,rand()%100,rand()%30,$te2); } $str = iconv("gbk","UTF-8","验证码");//把gbk编码转换成UTF-8,如果文件的编码是 UTF-8,则不需要这一步。因为我们的系统(Windows)自带的字体默认是用国际通用编码(UTF-8)模式来识别的,所以如果不做编码转换,可能无法正常显示。 imagettftext($im,12,rand(0,10),20,20,$te,'msyh.ttf',$str);//rand(3,10)倾斜度。msyh.ttf 是微软雅黑字体,可在 C:\Windows\Fonts (Windows XP、Windows 7)找到。然后拷贝到该文件的目录。Windows 下之所以能够显示中文,是因为系统安装了中文字体 header("Content-type: image/jpeg"); imagejpeg($im); ?>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
