So implementieren Sie den Bildverifizierungscode in PHP: 1. Laden Sie die GD-Erweiterung. 2. Erstellen Sie eine Leinwand und fügen Sie der Leinwand Inhalte hinzu. 4. Geben Sie Ressourcen frei .
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP Version 7.1, DELL G3-Computer.
Wie implementiert man Bildverifizierungscode in PHP?
PHP implementiert die Bildverifizierungscode-Funktion
Verifizierungscode: Captcha, ist eine Technologie zur Unterscheidung von Menschen und Computern
Prinzip (vollständig automatisierter öffentlicher Turing-Test zur Unterscheidung von Computern und Menschen) Computer und Menschen auseinander (Turing-Test) Bilder.
Die Essenz des Verifizierungscodes: Drucken Sie Textinhalte auf Bilder, um den Unterschied zwischen Computern und Menschen zu erkennen.
PHP kann die bereitgestellten Bilderweiterungen verwenden, um Bilder zu bedienen .
Laden der GD-Erweiterung: Alle GD-Erweiterungsfunktionen beginnen mit Bild
2. PHP-Operationsbilder
1 )
Bildressource imagecreatetruecolor( Breite, Höhe);2. Fügen Sie Inhalt (Text) zur Leinwand hinzua) Weisen Sie dem Inhalt, der dem Bild hinzugefügt werden soll, eine Farbe zu: Ordnen Sie zunächst die Farbe der Bildressource zu. und dann können Sie dasFarbhandle [integer] ] imagecolorallocate(picture resources, red, green, blue); //Die Farbe kann Zahlen 0-255 oder hexadezimal #hexadecimal
b) verwenden, um Text zu schreiben: nur Englisch (Inhalt der ASCII-Codetabelle)
Boolesche Bildzeichenfolge (Bildressource, Textgröße, Start-X-Koordinate, Start-Y-Koordinate, Schreibinhalt, Farbe);Schriftgröße: 1-5
imagepng(image Ressource[, Speicherort]);
//1. 创建画布 $img = imagecreatetruecolor(200,200); //var_dump($img); //2. 作画 //2.1 给画布分配颜色 $color = imagecolorallocate($img,255,255,255); //echo $color; //2.2 写入文字 $true = imagestring($img,5,50,90,'hello world',$color); //var_dump($true); //3. 保存输出内容 //3.1 输出 //告诉浏览器,内容是图片 //header('Content-type:image/png'); //imagepng($img); //3.2 保存图片 imagepng($img,'hello.png'); // 保存到当前目录 //4. 释放资源 $res = imagedestroy($img); var_dump($res);
3. Hintergrundfarbe füllen (Bildressource, Startposition X, Startposition Y, Farbgriff): Wenn festgestellt wird, dass die umgebenden Pixel dieselbe Farbe haben wie Das aktuelle Pixel (ganz schwarz) wird automatisch gerendert. 4. Fügen Sie Textinhalte hinzu: Weisen Sie die Ausgabe zu Zwei zu beachtende Punkte: Zufälliges Chinesisch erhalten: In PHP werden Daten in Bytes verarbeitet. Chinesisch hat unterschiedliche Anzahlen von Bytes in verschiedenen Zeichensätzen Bilder5. Ressourcen zerstören
//制作验证码图片 //获取验证码字符串 $captcha = ''; for($i = 0;$i < 4;$i++){ //chr: 将数字转换成对应的字符(ASCII) switch(mt_rand(0,2)){ case 0: //数字 $captcha .= chr(mt_rand(49,57)); break; case 1: //大写字母 $captcha .= chr(mt_rand(65,90)); break; case 2: //小写字母 $captcha .= chr(mt_rand(97,122)); break; } } //echo $captcha; //创建画布 $img = imagecreatetruecolor(200,200); //给背景分配颜色 $bg = imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); //填充背景色 imagefill($img,0,0,$bg); //循环写入 for($i = 0;$i < 4;$i++){ //分配文字颜色 $txt = imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)); //写入文字 imagestring($img,mt_rand(1,5),60 + $i*20,90,$captcha[$i],$txt); } //输出 header('Content-type:image/png'); imagepng($img); //释放资源 imagedestroy($img);
//中文验证码 header('Content-type:text/html;charset=utf-8'); //创建画布 $img = imagecreatetruecolor(200,200); //给背景分配颜色 $bg = imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); //填充背景色 imagefill($img,0,0,$bg); //写入内容 for($i = 0;$i < 4;$i++){ //分配颜色 $txt = imagecolorallocate($img,mt_rand(50,150),mt_rand(50,150),mt_rand(50,150)); //获取随机中文 $string = "今天我寒夜里看雪飘过怀着冷却了的心窝飘远方"; $pos = mt_rand(0,strlen($string) - 1); $start = $pos - $pos % 3; //utf-8取模3,GBK取模2 //取三个长度(字符串截取) $target = substr($string,$start,3); //写入中文 imagettftext($img,mt_rand(20,40),mt_rand(-45,45),40 + $i * 30, mt_rand(80,120),$txt,'simple.ttf',$target); } //输出图片 header('Content-type:image/png'); imagepng($img); //销毁资源 imagedestroy($img);
PHP-Video-Tutorial
“Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Bildverifizierungscode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!