Le code de vérification est une fonction que nous utilisons souvent lors du développement, j'ai donc emballé ici une classe de code de vérification, qui doit être utilisée comme plug-in de classe PHP. J'aimerais la partager avec tous les lecteurs.
Le principe de mise en œuvre est également très simple. Il s'agit d'utiliser plusieurs fonctions de la toile, plus l'acquisition de quelques ficelles, et de reconstituer le tout, haha.
Permettez-moi d'écrire brièvement mes réflexions ici. En fait, ce cours a été commenté très clairement, mais je veux quand même être verbeux avant d'écrire.
Tout d'abord, l'explication de certaines fonctions. L'explication ici est une expérience purement personnelle. S'il y a des erreurs, veuillez me corriger.
1. Fonction de création de canevas : imagecreatetruecolor(w,h);
Description : Utilisé pour créer un canevas.
w La largeur du canevas
h La hauteur du canevas
La valeur de retour de cette fonction Classe de ressources (gd)
2. Créer pour le canevas Une couleur : imagecolorallocate(img, rouge, vert, bleu)
Description :
ressource de canevas img
rouge, vert, bleu est compris entre 0 et 255
3. Ajoutez une couleur d'arrière-plan au canevas
imagefill(img,x,y,color);
Description :
Dans les coordonnées de l'image, y2, couleur);
Explication : Les coordonnées de son coin supérieur gauche sont x1, y1, et les coordonnées de son coin inférieur droit sont x2, y2. Le coin supérieur gauche de l'image a les coordonnées 0, 0.
3. Contenu du dessin (caractères)chaîne d'images (img, taille, x, y, chaîne, couleur
Description : img canvas
size est la taille des caractères 1 à 5 x, y est le point de départ string est le contenu à dessiner color C'est la couleur4. Indiquez au navigateur le format de l'image
Header("Content-type:image/png"); gif, etc.
5. Sortie (ou enregistrer), vous pouvez également utiliser le deuxième paramètre pour enregistrer
Imagepng(img【,filename】)imagejpeg(img【 ,filename])
Imagegif(img【,filename】)
6. Ajoutez des lignes d'interférence, qui sont essentiellement des lignes droites
imageline(img,x1 ,y1,x2,y2,color); img toile🎜> Couleur couleur
7. imagettftext ( img, taille, angle, x, y, couleur, fichier de police, texte)
Description : toile img taille taille de la police, pixels unitaires par défaut angle angle point de coordonnées x,ycouleur couleur
fichier de police Le fichier de police doit être une police chinoise Contenu du texte Note spéciale : les paramètres de couleur ici sont toutes les couleurs créées par la fonction imagecolorallocate() Voici l'idée :Le canevas est d'abord généré ici, puis des chaînes, des lignes droites , des points de bruit et des bordures sont ajoutés au canevas pour générer le code de vérification. Enfin, les deux interfaces publiques renvoyées par la classe sont : le canevas qui peut être appelé à l'extérieur pour générer le code de vérification et le but de la composition de chaîne du. Le code de vérification consiste à envoyer le canevas du code de vérification au monde extérieur et à stocker la chaîne pour vérification Voici le code :
Enfin, afin de ne pas induire les autres en erreur, permettez-moi de le souligner encore une fois :
Ici, vous devez d'abord utiliser l'entrée pour générer le code de vérification, puis utiliser verify pour générer la chaîne du code de vérification. être appelé en premier, puis Verify peut être appelé pour générer une chaîne de code de vérification. Le code de raison a déjà expliqué le problème. Parce que la chaîne de code de vérification est générée dans la méthode captchaImage de la méthode d'entrée, elle doit être appelée en premier. nécessite une comparaison des polices chinoises. Élevé, donc certains endroits ne prennent pas en charge les codes de vérification chinoisPour plus d'articles liés aux codes de vérification encapsulés PHP, veuillez faire attention au site Web PHP chinois !