Maison > développement back-end > tutoriel php > L'idée d'implémenter un simple code de vérification des caractères chinois en PHP

L'idée d'implémenter un simple code de vérification des caractères chinois en PHP

藏色散人
Libérer: 2023-04-07 13:06:01
avant
2404 Les gens l'ont consulté

Maintenant, de plus en plus de sites Web commencent à utiliser des codes de vérification de caractères chinois, ce qui augmente non seulement l'intimité de nos gens, mais augmente également la difficulté de déchiffrage automatique. Ici, je vais l'expliquer simplement et grossièrement.

Créer un canevas d'arrière-plan

$image = imagecreatetruecolor(200, 60);
$background = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background);
Copier après la connexion

Dessiner des points d'interférence

for ($i=0; $i < 300; $i++) { 
    $pixColor = imagecolorallocate($image, rand(150, 240), rand(150, 240), rand(150, 240));
    $pixX = rand(10, 190);
    $pixY = rand(5, 55);
    imagesetpixel($image, $pixX, $pixY, $pixColor);
}
Copier après la connexion

Dessiner des lignes d'interférence

//4条水平线
for ($i=0; $i < 5; $i++) { 
    $lineColor = imagecolorallocate($image, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineX1 = 0;
    $lineX2 = 300;
    $lineY1 = ($i + 1) * 12;
    $lineY2 = ($i + 1) * 12;
    imageline($image, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}
//10条垂直线
for ($i=0; $i < 30; $i++) { 
    $lineColor = imagecolorallocate($image, rand(50, 150), rand(50, 150), rand(50, 150));
    $lineX1 = ($i + 1) * 10;
    $lineX2 = ($i + 1) * 10;
    $lineY1 = 0;
    $lineY2 = 60;
    imageline($image, $lineX1, $lineY1, $lineX2, $lineY2, $lineColor);
}
Copier après la connexion

Dessinez des caractères chinois

$text = array(&#39;栀&#39;, &#39;子&#39;, &#39;花&#39;, &#39;开&#39;);
for ($i=0; $i < 4; $i++) {
    $textColor = imagecolorallocate($image, rand(20, 100), rand(20, 100), rand(20, 100));
    $textX = $i * 50 + 10;
    $textY = rand(40, 60);
    imagettftext($image, 30, rand(20, 50), $textX, $textY, $textColor, "/Library/Fonts/华文仿宋.ttf", $text[$i]);
}
Copier après la connexion

Notez ici que le fichier de police doit prendre en charge le chinois

l'encodage doit utiliser utf-8, vous souvenez-vous de convertir le chinois gbk ? [La fonction iconv peut vous aider]

Image de sortie

header("Content-Type:image/png");
imagepng($image);
Copier après la connexion

Détruire les ressources

imagedestroy($image);
Copier après la connexion

Après un processus difficile, faites-le , le code de vérification chinois sera affiché. Bien entendu, lorsqu'un site Web est utilisé, il y aura une graine de bibliothèque de caractères chinois, à partir de laquelle un nombre spécifique de caractères chinois sont sélectionnés et affichés au hasard, et finalement enregistrés dans la session pour vérification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal