လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ပုံပေါ်ရှိနယ်နိမိတ်ထက်ကျော်လွန်သောစာသားကိုရှောင်ရှားရန်စာသားအကျယ်ကိုဆုံးဖြတ်ရန် ImageFontwidth () ကိုမည်သို့အသုံးပြုရမည်နည်း။

ပုံပေါ်ရှိနယ်နိမိတ်ထက်ကျော်လွန်သောစာသားကိုရှောင်ရှားရန်စာသားအကျယ်ကိုဆုံးဖြတ်ရန် ImageFontwidth () ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-07-10

PHP ကိုစာသားနှင့်ဓာတ်ပုံများထုတ်ပေးရန်အသုံးပြုသောအခါစာသားသည်ပုံ၏နယ်နိမိတ်ထက်မကျော်လွန်စေရန်မကြာခဏလိုအပ်သည်။ PHP သည်ရုပ်ပုံများနှင့်စာသားများကိုလုပ်ဆောင်ရန်အတွက်လုပ်ဆောင်ချက်အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ ImageFontwidth () သည်သတ်မှတ်ထားသောစာလုံးအရွယ်အစားနှင့်အ 0 တ်လွှာတစ်ခု၏အကျယ်ကို 0 င်ရောက်နိုင်ရန်အတွက်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။

စာသားအကျယ်ကိုစာသားဆွဲသောအခါစာသားကိုပုံဆွဲသည့်အခါစာသားအကျယ်ကိုဆုံးဖြတ်ရန် ImageFontwidth () ကို မည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကအသေးစိတ်ဖော်ပြထားသည်။

1 ။ ImageFontwidth ဆိုတာဘာလဲ။

ImageFontwidth () function ၏ function သည် pixel ဖြစ်သော built-in font character ၏အကျယ်ကိုပြန်ပို့ရန်ဖြစ်သည်။ ၎င်း၏ function ကိုအဓိပ္ပါယ်ဖွငျ့အောက်ပါအတိုင်းဖြစ်သည် -

 int imagefontwidth(int $font);

Parameter $ font သည်စာလုံးအရွယ်အစားဖြစ်ပြီး PHP တွင်ပါ 0 င်သောဖောင့်အရွယ်အစားငါးခုကိုကိုယ်စားပြုသည်။

ဒီ function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဇာတ်ကောင်တစ် ဦး ချင်းစီ၏အကျယ်ကိုရနိုင်သည်။ ထို့နောက်စာသားတစ်ခုလုံးကိုတွက်ချက်ရန် string ၏အရှည်ကိုပေါင်းစပ်နိုင်သည်။

2 ။ စာသားအကျယ်ကိုစီရင်ခြင်းဥပမာ

အောက်ဖော်ပြပါကုဒ်သည် string width ကိုမည်သို့တွက်ချက်ရမည်ကိုပြသပြီးသတ်မှတ်ထားသောပုံအကျယ်ထက်ကျော်လွန်မနေဆုံးဖြတ်သည်။

 <?php
// ပုံအဖုံးကိုသတ်မှတ်ပါ
$image_width = 200;

// စာလုံးအရွယ်အစားကိုရွေးချယ်ပါ,1 ရောက်လာ 5
$font = 3;

// ရေးဆွဲခံရဖို့ string ကို
$text = "ဒါကစမ်းသပ်မှုစာသားပါ";

// တစ်ခုတည်းဇာတ်ကောင်၏ width တွက်ချက်
$char_width = imagefontwidth($font);

// string အကျယ်တွက်ချက်
$text_width = strlen($text) * $char_width;

// စာသားသည်နယ်နိမိတ်ထက်ကျော်လွန်ရှိမရှိဆုံးဖြတ်ရန်
if ($text_width > $image_width) {
    echo "စာသားအကျယ် image width ထက်ကျော်လွန်,နယ်နိမိတ်ကျော်လွန်လိမ့်မည်";
} else {
    echo "စာသားအကျယ်သည်ပုံအကွာအဝေးအတွင်း၌ရှိသည်,ရေးဆွဲနိုင်ပါတယ်";
}
?>

မှတ်စု: အထက်ပါကုဒ်တွင် strlen () သည် byte length ကိုတွက်ချက်သည်။ အကယ်. စာသားသည်တရုတ်ဖြစ်ပါက MB_strinlen () ကို အသုံးပြုရန် MB_strlen () ကိုအသုံးပြုရန်အကြံပြုသည်။ မှားယွင်းစွာတွက်ချက်သည်။

 $text_length = mb_strlen($text, 'UTF-8');
$text_width = $text_length * $char_width;

3 ။ ImageFontwidth () စာသားဆွဲခြင်းနှင့်ကျော်လွန်ရှောင်ရှားရန်) ကိုပေါင်းစပ်ခြင်း

စာသားကိုပုံတစ်ပုံတွင်ရေးလိုပါကစာသားအကျယ်ကိုသင်ပထမ ဦး ဆုံးတိုင်းတာနိုင်ပြီးစာလုံးကိုလျှော့ချရန်လိုအပ်, အောက်ဖော်ပြပါဥပမာသည်ပုံသဏ္ဌာန်ကိုရှောင်ရှားရန်ပုံသဏ္ဌာန်ကိုအလိုအလျှောက်စာသားများကိုမည်သို့အလိုအလျောက်ဖြတ်တောက်ရမည်ကိုပြသသည်။

 <?php
// အလွတ်တစ်ခုဖန်တီးပါ
$image_width = 200;
$image_height = 50;
$image = imagecreatetruecolor($image_width, $image_height);

// နောက်ခံအရောင်ကိုသတ်မှတ်ပါ
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);

// font အရောင်သတ်မှတ်ပါ
$text_color = imagecolorallocate($image, 0, 0, 0);

// ဇာတ်ကောင်အကြောင်းအရာများ
$text = "ဒါကစမ်းသပ်မှုစာသားပါ,ဒါဟာရှည်လျားကောင်းဖြစ်နိုင်သည်";

// စာလုံးအရွယ်အစားကိုရွေးချယ်ပါ
$font = 3;
$char_width = imagefontwidth($font);

// အများဆုံးစာလုံးများကိုအများဆုံးဖော်ပြနိုင်ကြောင်းတွက်ချက်ပါ
$max_chars = floor($image_width / $char_width);

// စာသားကိုဖြတ်,image ကိုကျော်လွန်မှကာကွယ်တားဆီး
if (mb_strlen($text, 'UTF-8') > $max_chars) {
    $text = mb_substr($text, 0, $max_chars, 'UTF-8') . '...';
}

// စာသားအကျယ်တွက်ချက်,စင်တာမျက်နှာပြင်
$text_length = mb_strlen($text, 'UTF-8');
$text_width = $text_length * $char_width;
$x = ($image_width - $text_width) / 2;
$y = ($image_height - imagefontheight($font)) / 2;

// စာသားဆွဲပါ
imagestring($image, $font, $x, $y, $text, $text_color);

// output ကိုပုံ
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>

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

  • အက်ခရာတစ်ခုတည်း၏အကျယ်ကိုရရန် imagefontwidth ($ font) ကို သုံးပါ။

  • စာသား၏စုစုပေါင်းအကျယ်ရရှိရန် String ရှိအက်ခရာအရေအတွက်ကိုတွက်ချက်ရန် MB_strlen () ကိုပေါင်းစပ်ရန်။

  • စာသားအကျယ်ကိုပုံအကျယ်ထဲထည့်ပါ,

  • စာသားကို ဖြတ်. စာသားကိုပုံအကွာအဝေးအတွင်း၌ရှိကြောင်းသေချာစေရန်အခြေအနေနှင့်အညီစာလုံးအရွယ်အစားကိုချိန်ညှိပါ။

  • ဤနည်းလမ်းသည် PHP Built-in ဖောင့်များကို အသုံးပြု. စာသားရေးဆွဲသည့်မြင်ကွင်းများအတွက်သင့်တော်သည်။

TTF ဖောင့်ကို အသုံးပြု. စာသားဆွဲရန်လိုအပ်ပါကစာသားအရွယ်အစားကိုပိုမိုတိကျစွာတိုင်းတာရန် imagettfbobbox () ကို အသုံးပြုရန်အကြံပြုသည်။