လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Sprintf ကိုအသုံးပြုပြီး string output ကို align လုပ်ခြင်းအတွက်သိကောင်းစရာများ

Sprintf ကိုအသုံးပြုပြီး string output ကို align လုပ်ခြင်းအတွက်သိကောင်းစရာများ

gitbox 2025-05-08

PHP ပရိုဂရမ်တွင် output ကိုပိုမိုရှင်းလင်းစေရန်နှင့်ဖတ်ရန်ပိုမိုလွယ်ကူစေရန် string output ကို format လုပ်ရန်လိုအပ်သည်။ PHP သည် output ကို format လုပ်ရန်နည်းလမ်းအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ အသုံးအများဆုံးမှာ Sprintf function ဖြစ်သည်။ Sprintf function ကို format ချထားသောကြိုးများကိုဖန်တီးရန်နှင့် output content ကို align လုပ်ရန်ခွင့်ပြုနိုင်သည်။ ထို့နောက် String alignment ကိုရရှိရန် Sprintf function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပါမည်။

Sprintf function ကဘာလဲ။

PHP ရှိ Sprintf လုပ်ဆောင်ချက်သည် string output ကို format လုပ်ရန်အသုံးပြုသည်။ အခြေခံ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 sprintf(format, arg1, arg2, ...)
  • ပုံစံ - output string ကိုပုံစံကိုသတ်မှတ်ပါ။

  • arg1, arg2, ... : format string ကို format controller အဆိုအရသက်ဆိုင်ရာ parameters တွေကိုအဆိုအရ Pass pass ။

Formatted strings များတွင်ကျွန်ုပ်တို့သည် placeholders များကိုကိန်းဂဏန်းများ, ရေပေါ်တန်ဖိုးများ,

string ကို alignment ၏အခြေခံနည်းလမ်းများ

string alignmention အတွက် Sprintf function ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည် format control control format ရှိအကျယ်နှင့် alignment သင်္ကေတများကိုအဓိကအသုံးပြုသည်။ အထူးသဖြင့်အသုံးပြုသော alignment method များတွင်လက်ဝဲ - alignment, rodignment နှင့် center-alignment ပါဝင်သည်။

1 ။ ညာဘက် aligned

ပုံမှန်အားဖြင့် Sprintf သည် output content ကိုမှန်ကန်စွာညှိလိမ့်မည်။ အခြား format များကိုမဖော်ပြပါကအကြောင်းအရာကို အလိုအလျောက် မှန်ကန်စွာ align လုပ်လိမ့်မည်။

 <?php
$name = "Alice";
$age = 30;
echo sprintf("|%-10s|%-3d|\n", $name, $age);
?>

အထက်ဖော်ပြပါကုဒ်များတွင် % -10s သည် string ကို align align ကို lege လုပ်ပြီး 10 လုံးကိုနေရာယူထားသည်။ -3D သည် နံပါတ် 3 လုံးကိုသိမ်းပိုက်စေသည်။

ရလဒ်ရလဒ် -

 |Alice     |30 |

2 ။ လက်ဝဲ alignment ကို

အကယ်. အကြောင်းအရာကိုသင်ကျန်ရှိစေလိုပါကသင်္ကေ ကိုသင်အသုံးပြုနိုင်သည်။

 <?php
$name = "Alice";
$age = 30;
echo sprintf("|%-10s|%-3d|\n", $name, $age);
?>

၎င်းသည် output content ကိုသတ်မှတ်ထားသော width ကိုသိမ်းပိုက်ထားသည့်အပြင်ဘက်ကို align-aligned alignment ကိုဖြစ်စေလိမ့်မည်။

 |Alice     |30 |

3 ။ center ကို align

စင် ကြယ် သော alignment သည်အနည်းငယ်ပိုမိုရှုပ်ထွေးသောခွဲစိတ်ကုသမှုလိုအပ်သည်။ သို့သော်ကျွန်ုပ်တို့သည်အကျယ်အ 0 န်းနှင့် padding အက္ခရာများကိုလိမ္မာပါးနပ်စွာဖြည့်ဆည်းခြင်းဖြင့်ဗဟိုချိန်ညှိမှုကိုရရှိနိုင်ပါသည်။

 <?php
function centerAlign($str, $width) {
    $padding = $width - strlen($str);
    $left = floor($padding / 2);
    $right = ceil($padding / 2);
    return str_repeat(" ", $left) . $str . str_repeat(" ", $right);
}

$name = "Alice";
$age = 30;
echo "|" . centerAlign($name, 10) . "|";
echo centerAlign($age, 3) . "|\n";
?>

ဒီ function ကဘယ်ဘက်နဲ့ညာဘက်ခြမ်းမှာရှိတဲ့အလွတ် area ရိယာကိုတွက်ချက်ပြီး string ကိုအလယ်မှာဖြည့်လိုက်တယ်။ ဤသည်ဗဟိုပြု alignment ကိုအောင်မြင်လိမ့်မည်။

ရလဒ်ရလဒ် -

 |  Alice   | 30 |

လက်တွေ့ကျသော application: url output ကို align

တခါတရံတွင်ကျွန်ုပ်တို့သည် URL ကဲ့သို့သော string ကို output လုပ်ရန်လိုအပ်သည်။ ကျွန်ုပ်တို့တွင် URLs မျိုးစုံနှင့်သူတို့၏ဖော်ပြချက်များနှင့်စာရင်းရှိသည်ဆိုပါစို့။ ကျနော်တို့ URL ကို align ချင်တယ်။ Sprintf ကိုအသုံးပြုပြီး alignment url output ကို format လုပ်ခြင်းဥပမာတစ်ခုမှာ -

 <?php
$urls = [
    "https://gitbox.net/first-url" => "First description",
    "https://gitbox.net/second-url" => "Second description",
    "https://gitbox.net/third-url" => "Third description"
];

echo sprintf("|%-35s|%-20s|\n", "URL", "Description");
echo str_repeat("-", 60) . "\n";

foreach ($urls as $url => $desc) {
    echo sprintf("|%-35s|%-20s|\n", $url, $desc);
}
?>

ဤကုဒ်သည် URL များစာရင်းကိုထုတ်ဖော်ပြောဆိုခြင်းနှင့် URL တစ်ခုချင်းစီကို fixed width ဖြင့်ညှိထားကြောင်းသေချာစေသည်။ URL ရဲ့ Domain Name ကို Gitbox.net နဲ့အစားထိုးလိုက်လို့ output ရလဒ်ကတော့အောက်ပါအတိုင်းဖြစ်သည် -

 |URL                                |Description          |
------------------------------------------------------------
|https://gitbox.net/first-url       |First description    |
|https://gitbox.net/second-url      |Second description   |
|https://gitbox.net/third-url       |Third description    |