Maison >développement back-end >tutoriel php >PHP implémente le code de vérification des caractères chinois

PHP implémente le code de vérification des caractères chinois

墨辰丷
墨辰丷original
2018-06-08 15:23:533169parcourir

Cet article présente principalement l'implémentation du code de vérification des caractères chinois en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

De plus en plus de sites Web utilisent désormais des codes de vérification des caractères chinois, ce qui augmente non seulement l'intimité de notre peuple, mais augmente également la difficulté de déchiffrage automatique. Ici, je vais l'expliquer brièvement. . .

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

$image = imagecreatetruecolor(200, 60);
$background = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background);

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);
}

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);
}

Dessiner 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]);
}

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

l'encodage doit utiliser utf-8 , pensez à convertir les chinois de gbk [la fonction iconv peut vous aider]

Image de sortie

header("Content-Type:image/png");
imagepng($image);

Détruire les ressources

imagedestroy($image);

Après un travail acharné, le code de vérification chinois s'affiche. Bien sûr, 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 extraits et affichés au hasard, et finalement enregistrée. La session est vérifiée.

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Connaissance de base et application des modèles de conception PHP

Classe d'encapsulation des opérations de fichier image PHP

Ceux qui confondent souvent les points de connaissances en PHP

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!

Déclaration:
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