Heim  >  Artikel  >  Backend-Entwicklung  >  Die Idee, einen einfachen Verifizierungscode für chinesische Schriftzeichen in PHP zu implementieren

Die Idee, einen einfachen Verifizierungscode für chinesische Schriftzeichen in PHP zu implementieren

藏色散人
藏色散人nach vorne
2019-09-25 09:17:062365Durchsuche

Jetzt beginnen immer mehr Websites, Bestätigungscodes für chinesische Schriftzeichen zu verwenden, was nicht nur die Intimität unserer Mitarbeiter erhöht, sondern auch die Schwierigkeit des maschinellen Knackens erhöht.

Hintergrundleinwand erstellen

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

Interferenzpunkte zeichnen

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

Interferenzlinien zeichnen

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

Zeichnen Sie chinesische Schriftzeichen

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

Beachten Sie hier, dass die Schriftartdatei Chinesisch unterstützen muss

Die Codierung sollte utf-8 verwenden. Denken Sie daran, GBK-Chinesisch zu konvertieren? [iconv-Funktion kann Ihnen helfen]

Bild ausgeben

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

Ressourcen zerstören

imagedestroy($image);

Nach einem groben Prozess tun Sie es , Der chinesische Bestätigungscode wird angezeigt. Wenn eine Website verwendet wird, gibt es natürlich einen Samen für die chinesische Schriftzeichenbibliothek, aus dem eine bestimmte Anzahl chinesischer Schriftzeichen zufällig ausgewählt und angezeigt und schließlich in der Sitzung zur Überprüfung aufgezeichnet wird.

Das obige ist der detaillierte Inhalt vonDie Idee, einen einfachen Verifizierungscode für chinesische Schriftzeichen in PHP zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen