လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Get_Meta_tags function ကို သုံး. Meta tags များကို parsa tags များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဖြေရှင်းနည်းများ

Get_Meta_tags function ကို သုံး. Meta tags များကို parsa tags များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဖြေရှင်းနည်းများ

gitbox 2025-06-17

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

Get_Meta_tags function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array get_meta_tags ( string $filename )

ဤလုပ်ဆောင်ချက်သည်ဖိုင်လမ်းကြောင်း (သို့မဟုတ် URL) ကိုယူပြီးဖိုင်များအားလုံးကိုခွဲခြမ်းစိတ်ဖြာသည် တံဆိပ်။ ရလဒ်မှာရရှိသောရလဒ်မှာ array ၏သော့သည် Meta tag ၏အ မည် သို့မဟုတ် ပိုင်ဆိုင်မှု ပိုင်ဆိုင်မှုဖြစ်သည်

ဥပမာအားဖြင့်, အောက်ပါ HTML ဥပမာကိုစဉ်းစားပါ။

 <html>
<head>
    <meta name="description" content="ဒါကစမ်းသပ်မှုစာမျက်နှာတစ်ခုပါ">
    <meta name="keywords" content="PHP, HTML, meta">
    <meta property="og:title" content="Open Graph Title">
</head>
<body>
    <!-- စာမျက်နှာအကြောင်းအရာ -->
</body>
</html>

Get_Meta_tags နှင့်ဤ HTML ဖိုင်ကိုခွဲခြမ်းစိတ်ဖြာပြီးနောက်ပြန်လာသောခင်းကျင်းမှုသည် -

 array(
    'description' => 'ဒါကစမ်းသပ်မှုစာမျက်နှာတစ်ခုပါ',
    'keywords' => 'PHP, HTML, meta',
    'og:title' => 'Open Graph Title'
)

2 ။ မကြာခဏမေးခွန်းများနှင့်ဖြေရှင်းနည်းများမကြာခဏမေးတယ်

2.1 မေးခွန်း 1 - အားလုံးကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာရန်မအောင်မြင်ပါ ကပ်တံဆိပ်

Get_Meta_tags function ကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ, အမည် နှင့် ပိုင်ဆိုင်မှု ဂုဏ်သတ္တိများသာအာရုံစူးစိုက်မှုကိုဂရုပြုကြသည်။ HTTP-Equivy attribute ၏ tags များကိုလျစ်လျူရှုထားသည်။ သင့်တွင်သင်၏ HTML တွင်ရှိလျှင် Get_Meta_tags မှ tag ကို parsed လိမ့်မည်မဟုတ်ပါ။

ဖြေရှင်းချက် -

tags များကို http-equir attribute တွေအတွက် tags တွေကိုခွဲခြမ်းစိတ်ဖြာဖို့လိုအပ်မယ်ဆိုရင်, domdocument စတဲ့ပိုပြီးအားကောင်းတဲ့ HTML parser ကိုသုံးပြီးအားလုံးရဖို့, အမှတ်အသားများနှင့်၎င်းတို့၏အကြောင်းအရာ။

 $doc = new DOMDocument();
@$doc->loadHTMLFile('yourfile.html');
$metas = $doc->getElementsByTagName('meta');

foreach ($metas as $meta) {
    $name = $meta->getAttribute('name');
    $content = $meta->getAttribute('content');
    echo "$name: $content\n";
}

ဤနည်းလမ်းသည် http-alivp အပါအ 0 င်အားလုံးပါဝင်နိုင်သည် တံဆိပ်။

2.2 မေးခွန်း 2 - Get_Meta_tags သည် စာလုံးများ encoding ensues များကို URLs တွင်မကိုင်တွယ်နိုင်ပါ

URL ကိုရောက်သောအခါ Get_Meta_tags function သည်တစ်ခါတစ်ရံတွင်အချို့သောဇာတ်ကောင် encodings များကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာရန်ပျက်ကွက်သည် (ဥပမာ, UTF-8 သို့မဟုတ် GB2312) ။ HTML ဖိုင်၏ encoding သည် PPP ၏ default encoding နှင့်မကိုက်ညီပါကခွဲခြမ်းစိတ်ဖြာအမှားများဖြစ်ပေါ်နိုင်သည်။

ဖြေရှင်းချက် -

HTML အကြောင်းအရာများကို HTML အကြောင်းအရာများကို MB_ConVert_encoding function မှတဆင့်မှန်ကန်သောဇာတ်ကောင်ကိုမှန်ကန်သောစာလုံးအဖြစ်ပြောင်းပြီး Get_Meta_tags ကို ခေါ်ပါ။

 $html = file_get_contents('yourfile.html');
$html = mb_convert_encoding($html, 'UTF-8', 'auto');
file_put_contents('tempfile.html', $html);

$metaTags = get_meta_tags('tempfile.html');
print_r($metaTags);

ဤနည်းအားဖြင့် HTML အကြောင်းအရာများကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါမှန်ကန်စွာ encoded ကြောင်းသေချာစေနိုင်သည်။

2.3 မေးခွန်း 3 - dynamically loaded meta tags များကိုမရနိုင်ပါ

အချို့သောဝက်ဘ်စာမျက်နှာများ tags များကို Javascript မှတဆင့် dynamically loaded နေကြသည်။ Get_Meta_tags function ကဒီပြောင်းလဲနေသောအကြောင်းအရာများကိုခွဲခြမ်းစိတ်ဖြာခြင်းကဤပြောင်းလဲမှုများကိုမခွဲနိုင်ပါ။

ဖြေရှင်းချက် -

dvamatically html အကြောင်းအရာအတွက် browser အပြုအမူကိုတုပရန်နှင့်နောက်ဆုံး html အနေဖြင့် Seenium သို့မဟုတ် Puppeteer ကဲ့သို့သောဘရောက်ဇာအလိုအလျောက်ကိရိယာများကိုအသုံးပြုရန်အကြံပြုသည်။ ဤအချိန်တွင်ပြန်ဆိုထားသော HTML ကို Get_Meta_tags ကို သုံး. ထုတ်ယူနိုင်ပြီးခွဲထုတ်နိုင်သည်။

2.4 မေးခွန်း 4 - အမှုကိုလျစ်လျူရှုပါ

HTML တွင် tags များနှင့် attribute အမည်များသည်ကိစ္စတွင်မခံစားနိုင်ပါ။ သို့သော် Get_meta_tags function ကိုပြန်လည်စီစဉ်ထားသည့်အတွက်ခင်းကျင်းမှုတွင်သော့များသည်များသောအားဖြင့်စာလုံးအသေးများဖြစ်သည်။ သင်၏ HTML တွင်စာလုံးအကြီးများကိုအသုံးပြုပါက, Get_Meta_Tags က ၎င်းကို ဖော်ပြချက် (စာလုံးအသေး) ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။

ဖြေရှင်းချက် -

ပြန်လာသော Meta tag သည်စာလုံးအကြီးအသေးအရေးယူရန်လိုအပ်သည်ဆိုပါက၎င်းကိုစည်းလုံးညီညွတ်သော format အနေဖြင့်ကိုယ်တိုင်ပြုလုပ်နိုင်သည်,

 $metaTags = get_meta_tags('yourfile.html');
$metaTags = array_change_key_case($metaTags, CASE_LOWER);

2.5 မေးခွန်း 5 - အချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ယူခြင်းသို့မဟုတ်ခွဲခြမ်းစိတ်ဖြာမှုမအောင်မြင်ပါ

အကယ်. 0 င်လာသည့်ဖိုင်လမ်းကြောင်းမှားယွင်းနေပါကသို့မဟုတ်ဖိုင်ကိုယ်တိုင်မပါရှိပါက Tags, Get_Meta_Tags သည် အချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပေးလိမ့်မည်။ ဤအချိန်တွင် HTML ဖိုင်ပုံစံသည်စံသတ်မှတ်ခြင်းမဟုတ်ဘဲဖိုင်လမ်းကြောင်းသည်လက်လှမ်းမမှီသောကြောင့်ဖြစ်နိုင်သည်။

ဖြေရှင်းချက် -

ဖိုင်လမ်းကြောင်းသည်မှန်ကန်ကြောင်းနှင့် HTML ဖိုင်သည်စံနှုန်းများနှင့်ကိုက်ညီကြောင်းသေချာအောင်လုပ်ပါ။ အကယ်. ပြ the နာဆက်ရှိနေပါက File တွင်မှန်ကန်သော UTF-8 encoding ကြေငြာချက်တွင်မှန်ကန်သော utf-8 encoding ကြေငြာချက်ပါ 0 င်သည်,

 $html = file_get_contents('yourfile.html');
if ($html === false) {
    die('ဖိုင်ကိုမဖတ်နိုင်ပါ');
}
$metaTags = get_meta_tags('yourfile.html');
if (empty($metaTags)) {
    echo "မတွေ့ပါ meta ကပ်တံဆိပ်。\n";
}
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    HTML