လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> HTML preprocessor တွင် attribute များ၏အသုတ်အစားထိုး

HTML preprocessor တွင် attribute များ၏အသုတ်အစားထိုး

M66 2025-06-02

မျက်မှောက်ခေတ် Web Development တွင်အထူးသဖြင့်တင်းပလိတ်စနစ်များ (သို့) ကြိုတင်စီစဉ်ထားသော HTML element အမြောက်အများ၏ attribute များအားလုံးကိုပြုပြင်ရန်သို့မဟုတ်အစားထိုးရန်လိုအပ်သည်။ ရုပ်ပိုင်းဆိုင်ရာပြုပြင်ခြင်းကို အသုံးပြု. ဂုဏ်သတ္တိများကိုအသုံးပြုခြင်းသည်မတတ်နိုင်သောကြောင့်, ဤဆောင်းပါးသည် PHP scripts များမှတဆင့် HTML attribute များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

domdocument နှင့် HTML ကိုကိုင်တွယ်ပါ

PHP ၏ကိုယ်ပိုင် DomDocument Class သည် HTML ဖွဲ့စည်းတည်ဆောက်ပုံများကိုအလွယ်တကူခွဲခြမ်းစိတ်ဖြာရန်နှင့်ပြုပြင်ရန်ခွင့်ပြုသည်။ IMG attribute အားလုံး၏ SRC Attributes များကို အစားထိုး. Domain Name အဟောင်းကို M66.net အသစ်ဖြင့်အစားထိုးမည်။

 <?php

$html = <<<HTML
<!DOCTYPE html>
<html>
<head>
    <title>စမ်းသပ်စာမျက်နှာ</title>
</head>
<body>
    <img src="http://example.com/images/a.jpg" alt="ရုပ်ပုံA">
    <img src="http://example.com/images/b.jpg" alt="ရုပ်ပုံB">
</body>
</html>
HTML;

// ဖန်တီး DOMDocument နမူနာ
$doc = new DOMDocument();
// ချို့ငဲသော HTML အမှားသတိပေးချက်
libxml_use_internal_errors(true);
$doc->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
libxml_clear_errors();

// အားလုံးရယူပါ img ကပ်တံဆိပ်
$imgs = $doc->getElementsByTagName('img');

foreach ($imgs as $img) {
    $src = $img->getAttribute('src');
    // ဒိုမိန်းအမည်ကိုအစားထိုးပါ
    $newSrc = str_replace('example.com', 'm66.net', $src);
    $img->setAttribute('src', $newSrc);
}

// output ကိုပြုပြင်မွမ်းမံ HTML
echo $doc->saveHTML();
?>

ရလဒ်ရလဒ် -

 <!DOCTYPE html>
<html>
<head>
    <title>စမ်းသပ်စာမျက်နှာ</title>
</head>
<body>
    <img src="http://m66.net/images/a.jpg" alt="ရုပ်ပုံA">
    <img src="http://m66.net/images/b.jpg" alt="ရုပ်ပုံB">
</body>
</html>

တိုးချဲ့ခြင်း - attribute များစွာကိုအစားထိုးပါ

SRC ကို အစားထိုးချင်ရုံသာမက links အားလုံး ( tags ) အားလုံးကို href domain names ကိုအစားထိုးချင်ပါတယ်ဆိုပါစို့။ ဒီနည်းကိုရေးနိုင်တယ်

 // ပြန်လည်နေရာချ a ကပ်တံဆိပ်的 href
$links = $doc->getElementsByTagName('a');
foreach ($links as $link) {
    $href = $link->getAttribute('href');
    $newHref = str_replace('example.com', 'm66.net', $href);
    $link->setAttribute('href', $newHref);
}

အသုတ်အစားထိုးအကြံပြုချက်များ

HTML preprocessessors သို့မဟုတ် template အင်ဂျင်များ (ဥပမာ - twig, blade) ကိုမသုံးမီ Attributes ကိုအစားထိုးခြင်းဖြင့်သင်လုပ်နိုင်သည်။

  • template ကိုသပ်သပ်ရပ်ရပ်ထားပါ

  • Hard-coded အမှားများကိုရှောင်ကြဉ်ပါ

  • ပတ် 0 န်းကျင်ဖြန့်ကျက်မှုများကိုထောက်ပံ့သည် (ထိုကဲ့သို့သော CDN Domain Names အမည်များကိုပြောင်းလဲခြင်း)

ထို့အပြင် အကယ်. သင်သည် static HTML ဖိုင်များကိုကိုင်တွယ်ဖြေရှင်းနေပါက + domdocument ကိုဖတ်ရန်ဖိုင်ကိုသုံးနိုင်သည်။

 $html = file_get_contents('template.html');
$doc->loadHTML($html);

အကျဉ်းချုပ်

PHP ၏ DomDocument Class ကိုအသုံးပြုခြင်းသည် HTML attribute များကိုအစားထိုးရန်လွယ်ကူစွာဖြည့်ဆည်းပေးနိုင်သည်။ scripting လုပ်ခြင်းမှတစ်ဆင့် attribute များ၏အစုအဝေးအသစ်ပြောင်းခြင်းများသည်လက်စွဲအမှားများကိုလျှော့ချရုံသာမကဖွံ့ဖြိုးမှုဖြစ်စဉ်ကိုအလိုအလျောက်နှင့်ထိန်းချုပ်နိုင်သည်။

သင်တည်ငြိမ်သောတင်းပလိတ်များသို့မဟုတ်ပြောင်းလဲနေသောအကြောင်းအရာများကိုလုပ်ဆောင်နေသည်ဖြစ်စေဤချဉ်းကပ်မှုသည်ကြိုးစားသင့်သည်။

လမ်းကြောင်းအစားထိုးခြင်း, တံဆိပ်ပြန်လည်တည်ဆောက်ခြင်းသို့မဟုတ်ခြွင်းချက်အစားထိုးခြင်းစသည့်လုပ်ဆောင်ချက်များကိုထပ်မံအကောင်အထည်ဖော်ရန်လိုအပ်ပါကပိုမိုအဆင့်မြင့်စစ်ဆင်ရေးများပြုလုပ်ရန်ပုံမှန်သို့မဟုတ် XPATH ကိုပေါင်းစပ်နိုင်သည်။