Source du code du projet: https://github.com/LVQINGDONG/learn_php/ Trouvez la branche PHPGD_numberIMG à télécharger.
1. Installation et configuration de la bibliothèque PHP GD
Recherchez php.ini dans le dossier de configuration du serveur php, ouvrez le fichier et recherchez le code "; extension = php_gd2.dll" et supprimez le point-virgule devant le ";"
Le serveur wamp est utilisé ici, et le fichier php.ini se trouve dans le répertoire wamp → bin → php → php7.0.4.
Une fois la configuration terminée, testez si la configuration est réussie:
Créez un nouveau fichier php et entrez le code à tester:
// Teste si la bibliothèque GD peut être utilisée if (extension_loaded ( 'gd' )) { echo "can be used" ; foreach (gd_info () as $ cate => $ value ) echo " $ cate : $ value <br> " ; } else { echo " Impossible d'utiliser gd " ; }Après succès, le navigateur affiche:
2. Instructions d'utilisation de la bibliothèque PHP GD
Il y a quatre étapes pour créer une image à l'aide de la bibliothèque PHP GD:
① Créez une toile. Tous les dessins doivent être terminés sur un calque d'arrière-plan et le traitement ultérieur des graphiques est basé sur ce calque d'arrière-plan.
Principe: Le canevas ouvre en fait une zone de mémoire temporaire dans la mémoire pour stocker les informations d'image.
②Dessinez l'image. Sur la base du calque d'arrière-plan créé par le canevas précédent, utilisez la fonction d'image php pour définir la couleur de l'image et dessiner les graphiques.
③ Image de sortie. Une fois l'image dessinée, l'image doit être enregistrée sur le serveur dans un certain format ou directement sortie sur la page pour affichage.
④ Libérez des ressources. Une fois l'image sortie, la zone d'informations sur le canevas stockée dans la mémoire n'existe pas et les ressources mémoire qu'elle occupe doivent être effacées à temps.
Troisièmement, réalisez le code de vérification graphique
①Créez le code d'entrée image_create1.php, utilisez d'abord la bibliothèque PHP GD pour essayer de sortir, voir les commentaires pour les fonctions spécifiques du code:
<? php / ** * Créé par PhpStorm. * Utilisateur: lenovo * Date: 2018/6/3 * Heure: 20:44 * / Teste si la bibliothèque GD peut être utilisée // if (extension_loaded ('gd')) { / / echo "Peut être utilisé"; // foreach (gd_info () as $ cate => $ value) // echo "$ cate: $ value <br>"; //} // else { // echo " Cannot use gd "; //} header ( " Content-type: image / png " ) ; // Définit le format de l'image générée $ im = imagecreate ( 120 , 30 ) ; // Nouveau canevas $ bg = imagecolorallocate ( $ im , 0 ,0 , 255 ) ; // définir le fond $ sg = imagecolorallocate ( $ im , 255 , 255 , 255 ) ; // définir le remplissage d'image au premier plan ( $ im , 120 , 30 , $ bg ) ; // remplir le fond imagestring ( $ im , 7 , 8 , 5 , "image create" , $ sg ) ; // remplir la chaîne imagepng ( $ im ) ; // image de sortie imagedestroy ( $ im ) ;// Détruire les ressources d'image
Ouvrez le navigateur pour voir l'effet:
②Après avoir su l'utiliser, créez image_create2.php et commencez à créer des codes de vérification, le code est le suivant:
<? php / ** * Créé par PhpStorm. * Utilisateur: lenovo * Date: 2018/6/3 * Heure: 21:08 * / header ( "Content-type: image / png" ) ; $ im = imagecreate ( 80 , 20 ) ; $ bg = imagecolorallocate ( $ im , 255 , 255 , 0 ) ; $ sg = imagecolorallocate ( $ im , 0 , 0 , 0 ) ; $ ag = imagecolorallocate ( $ im , 231 ,104,50); imagefill($im,120,30,$bg); $str="qwertyuipasdfghjklxcvbnm123456789QWERTYUIPASDFGHJKLXCVBNM"; $len=strlen($str)-1; for ($i=0;$i<4;$i++){ $str1=$str[mt_rand(0,$len)]; imagechar($im,7,16*$i+7,2,$str1,$sg); } for($i=0;$i<100;$i++){ imagesetpixel($im,rand()%80,rand()%20,$ag); } imagepng($im); imagedestroy($im);
打开浏览器看效果:
到这里PHP GD验证码就做好了。
---------------------------------------------------------------------------------------------------
用到的函数及其功能: