လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ ImpPontwidth function ကိုမည်သို့အသုံးပြုရမည်နည်း။

PHP ၏ ImpPontwidth function ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-07-10

ဝက်ဘ်ဆိုက်များကိုတီထွင်သည့်အခါအတည်ပြုကုဒ်စနစ်များသည်အန္တရာယ်ရှိသောမှတ်ပုံတင်ခြင်းနှင့်စက်ရုပ်တိုက်ခိုက်မှုများကိုကာကွယ်ရန်အရေးကြီးသောနည်းလမ်းများဖြစ်သည်။ PHP တွင် Custom Image Verification codes များကိုအလွယ်တကူဖန်တီးနိုင်သည့်အစွမ်းထက်သော GD စာကြည့်တိုက်တွင်ပါ 0 င်သည်။ ၎င်းတို့အနက် ImageFontwidth function သည် dynamally ကို dynamally dynamally ကို dynamally တွက်ချက်မှုကိုထိန်းချုပ်ရန်ကူညီနိုင်သည်, အတည်ပြုကုဒ်၏ပုံရိပ်၏ပုံရိပ်၏ adfterth design ကိုနားလည်သဘောပေါက်ခြင်း, အတည်ပြုကုဒ်ကိုပိုမိုလှပပြီးအကျိုးသင့်အကြောင်းသင့်ရှိသည်။

ဤဆောင်းပါးသည်လိုက်လျောညီထွေရှိသော width image systement code system တစ်ခုအားအကောင်အထည်ဖော်ရန် PHPFontfontwidth function ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။


1 ။ ImageFontwidth function ကိုမိတ်ဆက်

ImageFontwidth သည် Php GD စာကြည့်တိုက်တွင်အလုပ်လုပ်နေသော font တစ်ခု၏အ 0 တ်တစ်ခု၏အကျယ် (ယူနစ်များ) ၏အကျယ် (ယူနစ်များ - pixels) ကိုပြန်လည်ရောက်ရှိစေသော function တစ်ခုဖြစ်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 imagefontwidth(int $font): int

Parameter $ ဖောင့် သည်စာလုံးအရွယ်အစားကိုကိုယ်စားပြုသောကိန်းအရွယ်အစားကိုကိုယ်စားပြုသည့်ကိန်းတစ်ခုဖြစ်ပြီးနံပါတ် (1) မှ 5 အထိရှိသည်။

ဒီ function ကို imagefonteight နှင့် တွဲဖက်. မကြာခဏအသုံးပြုလေ့ရှိပြီးဇာတ်ကောင်များကသိမ်းပိုက်ထားသောနေရာကိုတိတိကျကျတွက်ချက်ရန်အသုံးပြုသည်။


2 ။ ဒီဇိုင်းစိတ်ကူးများ

လိုက်လျောညီထွေစွာအကျယ်နှင့်အတူအတည်ပြုကုဒ်ရုပ်ပုံကိုဖန်တီးရန်, အဓိကအဆင့်များမှာ -

  1. အတည်ပြုကုဒ် strings (များသောအားဖြင့်ကျပန်းအက္ခရာများနှင့်နံပါတ်များပေါင်းစပ်)

  2. အတည်ပြုကုဒ်၏စုစုပေါင်း width ကိုတွက်ချက် <br> <br> အက်ခရာတစ်ခုတည်း၏အကျယ်ကိုရရန် imagefontwidth ကို သုံး. အက်ခရာအရေအတွက်ဖြင့်မြှောက်။ အတည်ပြုကုဒ်တစ်ခုလုံးကိုရရန်လိုအပ်သော width ကိုရယူပါ

  3. width အပေါ်အခြေခံပြီးပတ်တူဖန်တီးပါ သတ်မှတ်ထားသောအကျယ်နှင့်အမြင့်နှင့်အတူပုံများဖန်တီးရန် imagecreatetrecolor ကို သုံးပါ

  4. အတည်ပြုကုဒ်စာလုံးများကိုဆွဲပါ left မှညာသို့စီစဉ်ထားသောနိုင်ရန်အတွက်ပုံရိပ်သို့အက္ခရာများရေးပါ

  5. အရင်းအမြစ်များနှင့်အရင်းအမြစ်များကိုဖျက်ဆီး


3 ။ အကောင်အထည်ဖော်မှုဥပမာ

imagefontwidth အပေါ် အခြေခံ. လိုက်လျောညီထွေဖြစ်အောင်လုပ်ထားသည့်မျက်နှာပြင်အတည်ပြုကုဒ်ကိုမည်သို့အကောင်အထည်ဖော်မည်ကိုပြသသည့်အပြည့်အဝနမူနာကုဒ်ဖြစ်သည်။

 <?php
// ကျပန်းအတည်ပြုကုဒ် string ကိုထုတ်လုပ်ပါ
function generateCaptchaCode($length = 5) {
    $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'; // ရှုပ်ထွေးသောဇာတ်ကောင်များကိုရှောင်ပါ
    $code = '';
    for ($i = 0; $i < $length; $i++) {
        $code .= $chars[random_int(0, strlen($chars) - 1)];
    }
    return $code;
}

// အဓိကလုပ်ဆောင်ချက်သည်အတည်ပြုကုဒ်ရုပ်ပုံကိုထုတ်ပေးသည်
function createCaptchaImage($code) {
    $font = 5; // built-in စာလုံးအရွယ်အစားကိုသုံးပါ5
    $charWidth = imagefontwidth($font);
    $charHeight = imagefontheight($font);
    $padding = 10; // ဘယ်ဘက်နှင့် left အနားသတ်

    // ပုံအကျယ်နှင့်အမြင့်တွက်ချက်
    $width = $charWidth * strlen($code) + $padding * 2;
    $height = $charHeight + $padding * 2;

    // ပုံအရင်းအမြစ်များကိုဖန်တီးပါ
    $image = imagecreatetruecolor($width, $height);

    // အရောင်သတ်မှတ်ပါ
    $bgColor = imagecolorallocate($image, 255, 255, 255); // အဖြူရောင်နောက်ခံ
    $textColor = imagecolorallocate($image, 0, 0, 0);     // အနက်ရောင်စာသား
    $noiseColor = imagecolorallocate($image, 100, 120, 180); // ဆူညံသံအရောင်

    // နောက်ခံဖြည့်ပါ
    imagefilledrectangle($image, 0, 0, $width, $height, $bgColor);

    // ဝင်ရောက်စွက်ဖက်ဆူညံသံကိုထည့်ပါ
    for ($i = 0; $i < 50; $i++) {
        imagesetpixel($image, random_int(0, $width), random_int(0, $height), $noiseColor);
    }

    // ဇာတ်ကောင်အားဖြင့်အတည်ပြုကုဒ်စာသားဆွဲပါ
    $x = $padding;
    $y = $padding;
    for ($i = 0; $i < strlen($code); $i++) {
        imagestring($image, $font, $x, $y, $code[$i], $textColor);
        $x += $charWidth;
    }

    // output ကိုရုပ်ပုံ header
    header('Content-Type: image/png');
    imagepng($image);
    imagedestroy($image);
}

// အတည်ပြုကုဒ် string ကို generate
$captchaCode = generateCaptchaCode(6);

// output ကိုအတည်ပြုကုဒ်ရုပ်ပုံ
createCaptchaImage($captchaCode);
?>

4 ။ ဖော်ပြချက်နှင့် extension ကို

  • လိုက်လျောညီထွေကြားသောအကျယ် - code သည် imagefontwidth မှတစ်ဆင့်စာလုံးတစ်လုံးတည်းကို dynamatically condatth ကိုတွက်ချက်သည်။ အတည်ပြုကုဒ်နံပါတ်များကိုမြှောက်ထားပြီး,

  • font size : ဥပမာအားဖြင့် GD built-in font 5 ကိုအသုံးပြုသည်။ အကယ်. သင်သည်ပိုမိုကောင်းမွန်သောအမြင်အာရုံအကျိုးသက်ရောက်မှုလိုအပ်ပါက truetype font ကို load လုပ်ရန် IgrotttEpt ကို သုံးနိုင်သည်။

  • လုံခြုံရေး - အတည်ပြုကုဒ်ကိုထုတ်လုပ်ပြီးနောက်အတည်ပြုကုဒ် string ကို session ကို session ကိုတင်ပြသောအခါအတည်ပြုရန်အတွက် session ထဲမှာသိမ်းဆည်းထားနိုင်ပါတယ်။

  • အလှအပဆိုင်ရာ - သင်သည်ဆူညံသံနှင့်ခါးဆစ်များကိုထပ်ထည့်နိုင်သည်သို့မဟုတ်စိစစ်ရေးကုဒ်များ၏ဆန့်ကျင်ရေးစွမ်းရည်ကိုမြှင့်တင်ရန် font အရောင်ပြောင်းနိုင်သည်။


5 ။ အကျဉ်းချုပ်

PHP ၏ imagefontwidth function မှတစ်ဆင့်ကျွန်ုပ်တို့သည်အက်ခရာတစ်ခုတည်း၏အကျယ်ကိုတိကျစွာရယူပြီးအတည်ပြုကုဒ်၏အကျယ်၏အရိပ်၏ width ကိုပြောင်းလဲခြင်းကိုသဘောပေါက်နိုင်သည်။ ဤနည်းလမ်းသည်ရိုးရိုးရှင်းရှင်းနှင့်အကျိုးရှိသည်။ အခြေခံလိုက်လျောညီထွေသော width image scrication codes များကိုထုတ်လုပ်ရန်သင့်တော်သည်။

ရှုပ်ထွေးသောအတည်ပြုကုဒ်အကျိုးသက်ရောက်မှုများလိုအပ်ပါကအခြား GD ပုံဆွဲလုပ်ဆောင်ချက်များကိုပေါင်းစပ်နိုင်သည်သို့မဟုတ်တတိယပါတီအတည်ပြုသည့်ကုဒ်စာကြည့်တိုက်ကိုသုံးနိုင်သည်။