PHP တွင် GD စာကြည့်တိုက်တွင် Polygons အပါအ 0 င်အမျိုးမျိုးသောဂရပ်ဖစ်များကိုဆွဲဆောင်နိုင်သည့်အစွမ်းထက်သောပုံရိပ်ထုတ်ယူမှုစွမ်းရည်များကိုပေးသည်။ အတည်ပြုကုဒ်၏ဆန့်ကျင်ရေးကိုတိုးတက်စေရန်ကျပန်း polygon polygon polygon ပုံစံဖြင့် Verification Code ကိုဖန်တီးလိုပါက Imageopenpolygon function သည်အလွန်အသုံးဝင်လိမ့်မည်။
ဤဆောင်းပါးသည် Imageopenpolygonon နှင့် GD စာကြည့်တိုက်ကို အသုံးပြု. Polygons ကိုမည်သို့ဆွဲရမည်ကိုအသေးစိတ်ဖော်ပြပြီးရိုးရိုးရှင်းရှင်းအတည်ပြုကုဒ်ပုံရိပ်ကိုထုတ်ပေးလိမ့်မည်။
PHP 7.0 နှင့်အထက်
GD extensions များကို install လုပ်ပြီးဖွင့်ထားပြီး ( Phpinfo မှတဆင့်သူတို့ကိုဖွင့်ထားသလား)
Imageopenpolygonon သည် GD စာကြည့်တိုက်မှပုံတစ်ပုံတွင် polygons များကို ဖွင့် ရန် GD စာကြည့်တိုက်မှပေးသောလုပ်ဆောင်ချက်များထဲမှတစ်ခုဖြစ်သည်။ ImagePolygonon နှင့်မတူဘဲ Imposopenpolygon သည် impropenpolygon ကို ပုံဆွဲခြင်း,
function ကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -
bool imageopenpolygon(GdImage $image, array $points, int $num_points, int $color)
$ Image : ပုံဆွဲခံရဖို့ပုံရိပ်အရင်းအမြစ်။
$ ရမှတ်များ - အမှတ်အသားဆိုင်ရာညွှန်ကြားချက်များပါ 0 င်သည့်အချက်များ [x0, y0, x1, y1, x, y2,] ... ] ။
$ numpoints : ဒေါင်လိုက်အရေအတွက်။
$ အရောင် : လိုင်းအရောင်။
ဤတွင်ကျပန်း polygons နှင့်အတူအတည်ပြုကုဒ်ပုံရိပ်ကိုဘယ်လိုဖန်တီးရမလဲဆိုတာအပြည့်အဝဥပမာတစ်ခု -
<?php
// အကြောင်းအရာကိုအကြောင်းအရာအမျိုးအစားသတ်မှတ်ပါ
header('Content-Type: image/png');
// ပတ်တူဖန်တီးပါ
$width = 200;
$height = 70;
$image = imagecreatetruecolor($width, $height);
// အရောင်ချိန်ညှိချက်များ
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // အဖြူရောင်နောက်ခံ
$textColor = imagecolorallocate($image, 0, 0, 0); // အနက်ရောင်ဖောင့်
$polygonColor = imagecolorallocate($image, 100, 100, 255); // အပြာရောင်အနား
// နောက်ခံဖြည့်ပါ
imagefill($image, 0, 0, $backgroundColor);
// ကျပန်းအတည်ပြုကုဒ်စာသားထုတ်လုပ်ပါ
$characters = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
$captchaText = '';
for ($i = 0; $i < 5; $i++) {
$captchaText .= $characters[rand(0, strlen($characters) - 1)];
}
// Verification Code စာသားကိုရေးပါ
$fontSize = 5; // built-in စာလုံးအရွယ်အစား
$x = ($width - imagefontwidth($fontSize) * strlen($captchaText)) / 2;
$y = ($height - imagefontheight($fontSize)) / 2;
imagestring($image, $fontSize, $x, $y, $captchaText, $textColor);
// ကျပန်းမျိုးစုံပွင့်လင်း polygons ဆွဲပါ
for ($i = 0; $i < 3; $i++) {
$points = [];
$numPoints = rand(3, 6); // hexagagon သို့တြိဂံ
for ($j = 0; $j < $numPoints; $j++) {
$points[] = rand(0, $width);
$points[] = rand(0, $height);
}
imageopenpolygon($image, $points, $numPoints, $polygonColor);
}
// output ကိုပုံ
imagepng($image);
// အရင်းအမြစ်များကိုဖျက်ဆီးသည်
imagedestroy($image);
?>
အထက်ပါ PHP ဖိုင်ကိုဖွင့်သောအခါ, အဖြူရောင်နောက်ခံဖြင့်စစ်ဆေးမှုကုဒ်တစ်ခုဖြစ်ပြီးဗဟိုတွင်ကျပန်းအက်ခရာနံပါတ်များနှင့်အတူကျပန်းအက္ခရာများဖွင့်ထားသည့်အပြာရင့်ရောင်ကပ်သော polygons များနှင့်ပတ်ပတ်လည်တွင်ကျပန်းရေးဆွဲထားသောအပြာရောင် polygons များကိုတွေ့လိမ့်မည်။
GD extensions များကိုဖွင့်ထားရမည် ။ မဖွင့်ပါက apt install php-gd သို့မဟုတ် php.ini ကိုတည်းဖြတ်ခြင်းကဲ့သို့သော command များကို install လုပ်ခြင်းဖြင့်၎င်းကိုဖွင့်နိုင်သည်။
တိုးတက်လာသောအတည်ပြုကုဒ်ရှုပ်ထွေးမှု - Polygons အရေအတွက်ကိုတိုးမြှင့်ခြင်းနှင့်အရောင်နှင့်ဂရပ်ဖစ်အရွယ်အစားကိုပြုပြင်ခြင်းနှင့်အလိုအလျောက်အသိအမှတ်ပြုမှုကိုတားဆီးခြင်းဖြင့်အတည်ပြုထားသောကုဒ်ကိုပိုမိုရှုပ်ထွေးစေနိုင်သည်။
လုံခြုံစိတ်ချရသောရလဒ် - ပုံကိုမထုတ်လုပ်မီ HTML output တွင်မရှိပါ။
အကယ်. သင်သည်ကွေးကောက်သောစာသား, လည်ပတ်မှုဆိုင်ရာအကျိုးသက်ရောက်မှုများနှင့်နောက်ခံဆူညံသံများထည့်သွင်းခြင်းကဲ့သို့သောအတည်ပြုကုဒ်ကိုပိုမိုကိုယ်ပိုင်ပြုလုပ်လိုပါကဖွံ့ဖြိုးတိုးတက်မှုအတွက် PHP အတွက် captcha builder ကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များပြုလုပ်နိုင်သည်။