③PHP utilise la bibliothèque GD pour réaliser le code de vérification graphique

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验证码就做好了。

---------------------------------------------------------------------------------------------------

用到的函数及其功能:

  



Je suppose que tu aimes

Origine blog.csdn.net/li__po/article/details/80560603
conseillé
Classement