


Bagaimana untuk melaksanakan kod pengesahan imej dalam php
Cara melaksanakan kod pengesahan imej dalam PHP: 1. Muatkan sambungan GD 2. Buat kanvas dan tambahkan kandungan pada kanvas; data kod pengesahan rawak Itu sahaja.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3.
Bagaimana untuk melaksanakan kod pengesahan imej dalam PHP?
PHP melaksanakan fungsi kod pengesahan gambar
Kod pengesahan: captcha, ialah teknologi yang digunakan untuk membezakan orang daripada komputer
Prinsip (Turing Awam Automatik Sepenuhnya Ujian untuk Memberitahu Komputer dan Manusia Berpisah (Ujian Turing automatik penuh untuk membezakan komputer dan manusia)
Bagaimana untuk membezakan komputer dan manusia?
Selagi ia adalah kandungan teks, komputer pasti dapat mengenalinya; adalah Kandungan gambar tidak boleh dikenali, tetapi mata manusia boleh mengenal pasti kandungan dalam gambar dengan mudah.
Intipati kod pengesahan: mencetak kandungan teks pada gambar untuk menyedari perbezaan antara komputer dan manusia .
1. Memahami sambungan imej
PHP sendiri tidak boleh mengendalikan imej.
PHP boleh menggunakan sambungan imej yang disediakan untuk mengendalikan imej.
Terdapat banyak sambungan imej: yang biasa digunakan ialah GD
Memuatkan sambungan GD: Semua fungsi sambungan GD bermula dengan imej
2 gambar operasi
1. Tambah kanvas (buat kanvas)
imej sumber imejcreatetruecolor (lebar, tinggi) 2. Tambahkan kandungan (teks) pada kanvas
a) kepada apa yang akan menjadi Berikan warna pada kandungan yang ditambahkan pada gambar: mula-mula kaitkan warna dengan sumber gambar, dan kemudian gunakan
pemegang warna [integer] imagecolorallocate (sumber gambar, merah, hijau, biru ); //Warna boleh menggunakan nombor 0- 255 atau menggunakan heksadesimal#Hex
b) untuk menulis teks: Anda hanya boleh menulis bahasa Inggeris (kandungan pada jadual kod ASCII)
Saiz fon: 1-5
3 Simpan output
imagepng (sumber imej [. , simpan lokasi]);
4 Keluarkan sumber (sumber yang disyorkan)
Imej hasil Boolean (sumber gambar);
3//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);
1. Hasilkan data kod pengesahan rawak
2. Cipta kanvas
3 handle); //isi imej: Selepas mencari piksel, jika didapati bahawa piksel bersebelahan mengelilingi mempunyai warna yang sama dengan piksel semasa (semua hitam), ia akan dipaparkan secara automatik
4 kandungan: Mula-mula tetapkan warna
5 Simpan output: Kod pengesahan semuanya dikeluarkan
6. Keluarkan sumber
4. Kod pengesahan bahasa Cina//制作验证码图片 //获取验证码字符串 $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);
Dua perkara yang perlu diberi perhatian
Dapatkan bahasa Cina rawak: Dalam PHP, data dikendalikan dalam bait bahasa Cina mempunyai bilangan bait yang berbeza dalam set aksara yang berbezaFungsi tulisan Cina: imagettftext(sumber imej, saiz fon, putaran fon. sudut, bermula X fon , fon mula Y, fail fon, kandungan, warna);
1 Cipta kanvas: isi dengan warna latar belakang
2 >3. Tulis Bahasa Cina Masukkan imej
4. Simpan imej output
5. Musnahkan sumber
5. Kelas kod pengesahan enkapsulasi//中文验证码 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);
Tutorial video PHP
》//验证码工具类 class Captcha{ //属性 private $width; private $height; private $strlen; private $lines; //干扰线数量 private $stars; //干扰点数量 private $font; //字体路径 //构造方法:初始化属性 public function __construct($info = array()){ //初始化属性 $this->width = isset($info['width'])?$info['width']:146; $this->height = isset($info['height'])?$info['height']:23; $this->strlen = isset($info['strlen'])?$info['strlen']:4; $this->lines = isset($info['lines'])?$info['lines']:10; $this->stars = isset($info['stars'])?$info['stars']:50; $this->font = isset($info['font'])?$info['font']:'fonts/AxureHandwriting-BoldItalic.otf'; } //生成验证码图片 public function generate(){ //创建画布,给定背景色 $img = imagecreatetruecolor($this->width,$this->height); $c_bg = imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); imagefill($img,0,0,$c_bg); //写入字符串 $captcha = $this->getStr(); //增加干扰点"*" for($i = 0;$i < $this->stars;$i++){ //随机颜色 $c_star = imagecolorallocate($img,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150)); //写入*号 imagestring($img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$c_star); } //增加干扰线 for($i = 0;$i < $this->lines;$i++){ //随机颜色 $c_line = imagecolorallocate($img,mt_rand(150,200),mt_rand(150,200),mt_rand(150,200)); //划线 imageline($img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$c_line); } //随机颜色 for($i = 0;$i < $this->strlen;$i++){ $c_str = imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100)); imagettftext($img,mt_rand(10,20),mt_rand(-45,45),20 + $i * 30,mt_rand(14,$this->height - 6),$c_str,$this->font,$captcha[$i]); } //输出图片 header('Content-type:image/png'); imagepng($img); //释放资源 imagedestroy($img); } //获取随机字符串 //@return 字符串 private function getStr(){ //ASCII码表生成字符串 $str = ''; //循环生成 for($i = 0;$i < $this->strlen;$i++){ //随机选择数字,小写字母和大写字母 switch(mt_rand(0,2)){ case 0: //数字 $str .= chr(mt_rand(49,57)); break; case 1: //小写字母 $str .= chr(mt_rand(97,122)); break; case 2: //大写字母 $str .= chr(mt_rand(65,90)); break; } } //将验证码字符串保存到session $_SESSION['captcha'] = $str; //返回结果 return $str; } /* * 验证验证码 * @param1 string $captcha,用户输入的验证码数据 * @return boolean,成功返回true,失败返回false */ public static function checkCaptcha($captcha){ //与session中的验证码进行验证 //验证码不区分大小写 return (strtoupper($captcha) === strtoupper($_SESSION['captcha'])); } }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kod pengesahan imej dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
