Get_Meta_tags () သည် PHP တွင် <meta name = "" ""> Tags မှ <Meta name = "... "> tags များမှအကြောင်းအရာများကိုထုတ်ယူရန်အဆင်ပြေသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုမကြာခဏစာမျက်နှာသော့ချက်စာလုံးများသို့မဟုတ်ဖော်ပြချက်များကိုတွားသွားလေ့ရှိသည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များကပြ problems နာအမျိုးမျိုးကိုကြုံတွေ့ရလိမ့်မည်။ သော့ချက်စာလုံးသည်မအောင်မြင်ပါ။ ဝေးလံသောတောင်းဆိုမှုသည်မမှန်ကန်ပါ။
get_meta_tags (string $ filename, bool $ use_incleude_intude_tath = false) false : file ကိုဖတ်ပြီး <meta name = "xxx"> အကြောင်းအရာတစ်ခုချင်းစီကို activity Array Name (Mety) ။
It does not get the <title> tag content (i.e. the page title), nor parse metas with non- name attributes such as <meta property="og:..."> or <meta charset="..."> .
HTML အတွက်၎င်း၏လိုအပ်ချက်များကိုအတော်လေးတင်းကျပ်သည်။ Meta သည် အမည်ပုံစံ = "... " နှင့် အကြောင်းအရာ = "... " နှင့်အကြောင်းအရာများ = "... " အစဉ်အလာအရခွဲခြမ်းစိတ်ဖြာခြင်းသည်တစ်ခါတစ်ရံတွင်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုအကျိုးသက်ရောက်နိုင်သည်။
နိဂုံး : အကယ်. သင်စာမျက်နှာ <title> သို့မဟုတ် Meta (Open Graph ကဲ့သို့) ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကို အသုံးပြုလိုပါက Get_meta_tags () သည် တစ်ခုတည်းသောအသုံးမ 0 င်ပါ။
အကြောင်းရင်း - Get_Meta_tags () <title> ကိုမဖြေရှင်းနိုင်ပါ။
ဖြေရှင်းချက် - DomDocument သို့မဟုတ်ပုံမှန် (အကြံပြုထားခြင်းမရှိပါ) ကိုအသုံးပြုပါ <title> ကို ခွဲထုတ်ရန်။ ဥပမာ (အကြံပြုထားသည့် ဒိုမုံး ):
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">fetch_title</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$html</span></span></span><span>) {
</span><span><span class="hljs-variable">$dom</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DOMDocument</span></span><span>();
</span><span><span class="hljs-comment">// suppress warnings for malformed HTML</span></span><span>
@</span><span><span class="hljs-variable">$dom</span></span><span>-></span><span><span class="hljs-title function_ invoke__">loadHTML</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, LIBXML_NOWARNING | LIBXML_NOERROR);
</span><span><span class="hljs-variable">$nodes</span></span><span> = </span><span><span class="hljs-variable">$dom</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getElementsByTagName</span></span><span>(</span><span><span class="hljs-string">'title'</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$nodes</span></span><span>->length ? </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$nodes</span></span><span>-></span><span><span class="hljs-title function_ invoke__">item</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>)->textContent) : </span><span><span class="hljs-literal">null</span></span><span>;
}
</span></span>အကယ်. သင်စာမျက်နှာအကြောင်းအရာကိုအဝေးမှရယူရန်လိုအပ်ပါက ကျေးဇူးပြု. html ကို file_get_contents / curl နှင့်ပထမဆုံးဆွဲထုတ်ပါ, ပြီးနောက်၎င်းကို fetter_title () သို့ကူးပါ။
ဖြစ်နိုင်ချေရှိသောအကြောင်းပြချက်များ :
HTML Meta ကို အမည် = "... " အကြောင်းအရာ = "... " (ဥပမာ - ပိုင်ဆိုင်မှု = "og: og: og: og: og: og: og: og: og: http-exiv ) ။
Meta သည် <head> (သို့မဟုတ်စာမျက်နှာဖွဲ့စည်းပုံသည်စံသတ်မှတ်ခြင်းမရှိပါ)
ဇာတ်ကောင် encoding သို့မဟုတ် BOM ကခွဲခြမ်းစိတ်ဖြာခြင်းဖြစ်ပေါ်စေသည်။
Allow_URL_FOPEN ကို ပိတ်ထားပြီး URL ကိုအသုံးမပြုနိုင်ပါ။
ဖြေရှင်းချက် -
Meta Attribute အမျိုးအစားကိုစစ်ဆေးပြီး Meta-> GetATTRATEARE ('NAME') နှင့် META-> GetATTRATEARE ('NAME) နှင့် Meta-> GetATTRATEARY (' Property) နှင့် Meta-> GetATTRATIRATHARY ('ပိုင်ဆိုင်မှု') ကို စစ်ဆေးပါ။
ဝေးလံခေါင်သီသော URLs များအတွက်စာမျက်နှာအကြောင်းအရာကိုပထမ ဦး ဆုံး (ပိုမိုပြောင်းလွယ်ပြင်လွယ်) ရရန် curl ကို သုံးပါ။ ထို့နောက်ခွဲခြမ်းစိတ်ဖြာရန် dom ကိုသုံးပါ။
ခွင့်ပြု ပါ
ဥပမာ - ( အမည် နှင့် ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုများ အပါအ 0 င်) နှင့်ခေါင်းစဉ်အပါအ 0 င်ဘုံ meta များကိုထုတ်ယူရန် Curl + dom ကိုသုံးပါ။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">fetch_html</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$url</span></span></span><span>, </span><span><span class="hljs-variable">$timeout</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>) {
</span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_setopt_array</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, [
CURLOPT_RETURNTRANSFER => </span><span><span class="hljs-literal">true</span></span><span>,
CURLOPT_FOLLOWLOCATION => </span><span><span class="hljs-literal">true</span></span><span>,
CURLOPT_MAXREDIRS => </span><span><span class="hljs-number">5</span></span><span>,
CURLOPT_CONNECTTIMEOUT => </span><span><span class="hljs-variable">$timeout</span></span><span>,
CURLOPT_TIMEOUT => </span><span><span class="hljs-variable">$timeout</span></span><span>,
CURLOPT_USERAGENT => </span><span><span class="hljs-string">'Mozilla/5.0 (compatible; PHP script)'</span></span><span>,
]);
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_exec</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
</span><span><span class="hljs-variable">$err</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_error</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_close</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$html</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">"Failed to fetch URL: <span class="hljs-subst">$err</span></span></span><span>");
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$html</span></span><span>;
}
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">parse_meta_and_title</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$html</span></span></span><span>) {
</span><span><span class="hljs-variable">$dom</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DOMDocument</span></span><span>();
@</span><span><span class="hljs-variable">$dom</span></span><span>-></span><span><span class="hljs-title function_ invoke__">loadHTML</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, LIBXML_NOWARNING | LIBXML_NOERROR);
</span><span><span class="hljs-variable">$result</span></span><span> = [</span><span><span class="hljs-string">'title'</span></span><span> => </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-string">'meta'</span></span><span> => []];
</span><span><span class="hljs-comment">// title</span></span><span>
</span><span><span class="hljs-variable">$titles</span></span><span> = </span><span><span class="hljs-variable">$dom</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getElementsByTagName</span></span><span>(</span><span><span class="hljs-string">'title'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$titles</span></span><span>->length) {
</span><span><span class="hljs-variable">$result</span></span><span>[</span><span><span class="hljs-string">'title'</span></span><span>] = </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$titles</span></span><span>-></span><span><span class="hljs-title function_ invoke__">item</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>)->textContent);
}
</span><span><span class="hljs-comment">// metas</span></span><span>
</span><span><span class="hljs-variable">$metas</span></span><span> = </span><span><span class="hljs-variable">$dom</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getElementsByTagName</span></span><span>(</span><span><span class="hljs-string">'meta'</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$metas</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$meta</span></span><span>) {
</span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getAttribute</span></span><span>(</span><span><span class="hljs-string">'name'</span></span><span>);
</span><span><span class="hljs-variable">$prop</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getAttribute</span></span><span>(</span><span><span class="hljs-string">'property'</span></span><span>); </span><span><span class="hljs-comment">// og: စောင့်</span></span><span>
</span><span><span class="hljs-variable">$http_equiv</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getAttribute</span></span><span>(</span><span><span class="hljs-string">'http-equiv'</span></span><span>);
</span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-variable">$meta</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getAttribute</span></span><span>(</span><span><span class="hljs-string">'content'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$name</span></span><span>) {
</span><span><span class="hljs-variable">$result</span></span><span>[</span><span><span class="hljs-string">'meta'</span></span><span>][</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$name</span></span><span>)] = </span><span><span class="hljs-variable">$content</span></span><span>;
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$prop</span></span><span>) {
</span><span><span class="hljs-variable">$result</span></span><span>[</span><span><span class="hljs-string">'meta'</span></span><span>][</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$prop</span></span><span>)] = </span><span><span class="hljs-variable">$content</span></span><span>;
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$http_equiv</span></span><span>) {
</span><span><span class="hljs-variable">$result</span></span><span>[</span><span><span class="hljs-string">'meta'</span></span><span>][</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$http_equiv</span></span><span>)] = </span><span><span class="hljs-variable">$content</span></span><span>;
}
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
}
</span></span>အကြောင်းပြချက် :
စာမျက်နှာမှအသုံးပြုသော encoding (UTF-8, GBK) ကဲ့သို့သော Disdocument :: Loadhtml ၏ပုံမှန်အပြုအမူနှင့်မကိုက်ညီပါ။
HTTP Header သည်စာမျက်နှာရှိ Charset အချက်အလက်များနှင့်ကိုက်ညီမှုမရှိပါ။
ဖြေရှင်းချက် -
HTML သို့ HTML သို့ loadhtml () inclemp-8 ()) သို့ ပြောင်းရန် <meta http-equiv = "အကြောင်းအရာအမျိုးအစား" အကြောင်းအရာ = "text / html; charset = utf-8">> ခေါင်းထဲသို့သွားရန်။
encoding ကိုဆုံးဖြတ်ရန်နှင့်၎င်းကို UTF-8 သို့ပြောင်းရန် MB_DETEEct_encoding () ကို သုံးပါ။
ဥပမာ -
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">normalize_to_utf8</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$html</span></span></span><span>) {
</span><span><span class="hljs-comment">// သွားဖို့ကြိုးစားပါ BOM သို့မဟုတ် meta တရားသူကြီး encoding,သင်မသေချာလျှင်၎င်းကိုသုံးပါ mb_detect_encoding</span></span><span>
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">'/<meta.+?charset=["\']?\s*([a-zA-Z0-9\-\_]+)\b/i'</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-variable">$m</span></span><span>)) {
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtoupper</span></span><span>(</span><span><span class="hljs-variable">$m</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]);
}
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$encoding</span></span><span>) {
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_detect_encoding</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, [</span><span><span class="hljs-string">'UTF-8'</span></span><span>,</span><span><span class="hljs-string">'GB2312'</span></span><span>,</span><span><span class="hljs-string">'GBK'</span></span><span>,</span><span><span class="hljs-string">'ISO-8859-1'</span></span><span>], </span><span><span class="hljs-literal">true</span></span><span>);
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$encoding</span></span><span> && </span><span><span class="hljs-title function_ invoke__">strtoupper</span></span><span>(</span><span><span class="hljs-variable">$encoding</span></span><span>) !== </span><span><span class="hljs-string">'UTF-8'</span></span><span>) {
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
}
</span><span><span class="hljs-comment">// အာမခံ loadHTML အဖြစ်သတ်မှတ် UTF-8</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stripos</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-string">'<meta http-equiv="Content-Type"'</span></span><span>) === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/<head([^>]*)>/i'</span></span><span>, </span><span><span class="hljs-string">'<head$1><meta http-equiv="Content-Type" content="text/html; charset=utf-8">'</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$html</span></span><span>;
}
</span></span> အကြောင်းရင်း - ဒီ function ဟာရိုးရှင်းတဲ့ parser အပေါ်အခြေခံထားတယ်, ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှု အတွက်ပစ္စည်းဥစ်စာ ပိုင်ဆိုင်မှုမှာအသစ်တွေ, မှတ်ချက်များ, ဒါမှမဟုတ်အသိုက်ကိုထူးဆန်းတဲ့ဇာတ်ကောင်တွေကြုံရလိမ့်မယ်။
ဖြေရှင်းချက် - ၎င်းသည် DomDocument နှင့်အတူအမှားများကိုသည်းခံ။ , သို့မဟုတ် ဦး ခေါင်းကို HTML တွင်ပထမဆုံး preprocess ပထမ (မှတ်ချက်များကိုဖယ်ရှားပါ, attribute များကိုအတူတူပါပဲ) ကို ဖယ်ရှားပါ။
တန်ပြန်အစီအမံ :
curlopt_USERAGNESS ကို အသုံးပြု. CURLOPT_USERAGNENT ကို သုံးပါ။
ကျိုးကြောင်းဆီလျော်သော curlopt_timeout နှင့် curlopt_connectimeout ချမှတ်ပါ။
curlopt_followloclocation (အချို့သောပတ်ဝန်းကျင်တွင်ဖွင့်ထားရန်လိုအပ်ကြောင်းသတိပြုပါ) ။
အကယ်. ဆိုဒ်တွင်ပရိယာယ်နှင့်မဟာဗျူဟာ (အတည်ပြုကုဒ်, js ပြန်ဆိုခြင်း,
ရိုးရှင်းသောတောင်းဆိုမှုခေါင်းစဉ်သည်အသွင်သဏ်ဌာန်အသွင်ပြောင်းခြင်း (သို့သော်ဥပဒေနှင့် 0 က်ဘ်ဆိုက်စက်ရုပ်များသဘောတူညီချက်ကိုလိုက်နာသည်) ။
JS (ဥပမာ deptless browser များ) နှင့်အတူတွားသောတွားသမားများကိုသုံးပါ။
HTTP status ကုဒ်များကိုထုတ်လုပ်ပါ။
ဥပမာ - ခေါင်းစဉ်များနှင့်ဆံပင်ကောက်ကောက်
<span><span><span class="hljs-title function_ invoke__">curl_setopt_array</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, [
CURLOPT_RETURNTRANSFER => </span><span><span class="hljs-literal">true</span></span><span>,
CURLOPT_FOLLOWLOCATION => </span><span><span class="hljs-literal">true</span></span><span>,
CURLOPT_MAXREDIRS => </span><span><span class="hljs-number">5</span></span><span>,
CURLOPT_CONNECTTIMEOUT => </span><span><span class="hljs-number">10</span></span><span>,
CURLOPT_TIMEOUT => </span><span><span class="hljs-number">15</span></span><span>,
CURLOPT_USERAGENT => </span><span><span class="hljs-string">'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'</span></span><span>,
CURLOPT_HTTPHEADER => [
</span><span><span class="hljs-string">'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'</span></span><span>,
</span><span><span class="hljs-string">'Accept-Language: en-US,en;q=0.5'</span></span><span>,
],
]);
</span></span>၎င်းသည် function ၏ဒီဇိုင်းဖြစ်သည်။ သော့ချက်အမည်ကိုစာလုံးအသေးအဖြစ်ပြောင်းလဲလိမ့်မည်။ အကယ်. သင်၏စီးပွားရေးလုပ်ငန်းသည်အမှုန်အထိခိုက်မခံသောအကွက်များအပေါ်မှီခိုနေပါကစံသတ်မှတ်ထားသောသော့အမည်များကိုသတိပြုပါ။
ဤတွင်ပေါင်းစပ်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပါသည်။ HTML ကိုရရန် Curl ကို ပထမဆုံးအသုံးပြုပါ, ထို့နောက် encoding ပုံမှန်ပြုလုပ်ပါ။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">fetch_page_info</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$url</span></span></span><span>) {
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fetch_html</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>);
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">normalize_to_utf8</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">parse_meta_and_title</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-comment">// သာမန်လယ်ကွင်းပုံမှန်:title, keywords, description</span></span><span>
</span><span><span class="hljs-variable">$info</span></span><span> = [];
</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'title'</span></span><span>] = </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'title'</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$meta</span></span><span> = </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'meta'</span></span><span>] ?? [];
</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'keywords'</span></span><span>] = </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'keywords'</span></span><span>] ?? (</span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'og:site_name'</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>);
</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'description'</span></span><span>] = </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'description'</span></span><span>] ?? (</span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'og:description'</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>);
</span><span><span class="hljs-comment">// အားလုံးပြန်သွားပါ meta နောက်ထပ်အသုံးပြုမှုသည်</span></span><span>
</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'meta_all'</span></span><span>] = </span><span><span class="hljs-variable">$meta</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$info</span></span><span>;
}
</span><span><span class="hljs-comment">// ဥပမာကိုသုံးပါ:</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">'https://example.com'</span></span><span>;
</span><span><span class="hljs-variable">$info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fetch_page_info</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">var_export</span></span><span>(</span><span><span class="hljs-variable">$info</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>အကယ်. သင်သည်အသုတ်တွင်စာမျက်နှာအမြောက်အမြားကိုတွားသွားရန်လိုအပ်ပါက ကျေးဇူးပြု. တူညီသော URL ကိုအချိန်နှင့်တပြေးညီမကိုးပါနှင့်။ Page Updates ၏ကြိမ်နှုန်းပေါ် မူတည်. 1 နာရီသို့မဟုတ် 24 နာရီကဲ့သို့သောသင့်တော်သောသက်တမ်းကုန်ဆုံးသည့်ပေါ်လစီများကိုအသုံးပြုရန်အကြံပြုသည်။
ပစ်မှတ်ထားသည့်နေရာမှပိတ်ဆို့ခြင်းသို့မဟုတ်၎င်း၏အိမ်ရှင်ထံမှမြင့်မားသောဖိအားများအောက်တွင်ရှိနေခြင်းကိုရှောင်ရှားရန်တစ်ပြိုင်နက်တည်းတွားတတ်သောတွား 0 န်ကိုထိန်းချုပ်ပါ။
ကြီးမားသောဆိုဒ်များအတွက်ပင်မ 0 င်ရောက်ခြင်းပင်မစာမျက်နှာနှင့်အရေးကြီးသောစာမျက်နှာများကို ဦး စားပေးသည့်စာမျက်နှာများအားလုံးသည်လင့်ခ်များအားလုံးတွားသွားနိုင်သည်။
Meta tags များအနေဖြင့်ယူနီဖောင်းမဟုတ်သည့် Moder Modern Sites သည် Get_Meta_tags () အတွင်းမဟုတ်သော og: ခေါင်းစဉ် နှင့် Twitter: ခေါင်းစဉ်ကို အသုံးပြုသည်။ DOM ကိုအသုံးပြုခြင်းသည်အမျိုးအစားအားလုံးကိုရိုက်ကူးနိုင်သည်။
Meta tag ပွားများ - စာမျက်နှာပေါ်တွင် Meta အမည်များကို (မျိုးစုံဘာသာစကားထိန်းချုပ်မှုအတွက်အသုံးပြုနိုင်သည်) ရှိပါကသင်၏ခွဲခြမ်းစိတ်ဖြာမှုဆိုင်ရာယုတ္တိဗေဒသည်ပထမတစ်ခုကိုယူရန်,
META ရှိ HTML အဖွဲ့အစည်းများ - Decoding Endits ကဲ့သို့သော & amp ကဲ့သို့သော decoding entit များကိုဂရုပြုပါ။ & # 123; ( html_entity_decode () ) ။
စက်ရုပ်များ / Meta-Refresh : Meta Refresh (Redirection) သို့မဟုတ် Redirection Noindex ကိုကိုင်တွယ်ရန်လိုအပ်ပါက http-equiv နှင့် checks နှင့်သက်ဆိုင်ရာဂုဏ်သတ္တိများကိုစစ်ဆေးပါ။
robots.txt နှင့်ဥပဒေနှင့်လိုက်လျောညီထွေပါ ။ ကျေးဇူးပြု. ပစ်မှတ်ထားသည့် site robots.txt နှင့် 0 န်ဆောင်မှုဆိုင်ရာသတ်မှတ်ချက်များကိုမတွန့်ဘဲ crowling,
သင် <meta name = "သော့ချက်စာလုံးများ"> သို့မဟုတ် <title> (နှစ်ခုကွဲပြားခြားနားသော tools များ)
အကယ်. ၎င်းသည်ဝေးလံခေါင်သီတင့်သည်ဆိုပါကမူလ HTML ကိုရယူရန်နှင့်ပုံနှိပ်ခြင်းနှင့် Meta ၏အရေးအသားနှင့် encoding ကိုစစ်ဆေးရန် Curl ကို ပထမဆုံးအသုံးပြုပါ။
utf-8 မဟုတ်လျှင် Charset ကို စစ်ဆေးပါ။ ထို့နောက်ပထမ ဦး ဆုံးပြောင်းပါ။
get_meta_tags () ကို ထုတ်ယူလို့မရဘူးဆိုရင် DomDocument ကိုပြောင်းပြီး ဖမ်းယူ လို့ မရဘူး ။
HTTP အမှားများ, redirection နှင့် crawling anti-crawling ယန္တရားများကိုကိုင်တွယ်ပါ
ထပ်တူတောင်းဆိုမှုများကိုရှောင်ရှားရန်အရေးကြီးသောစာမျက်နှာများ cache ကိုအကောင်အထည်ဖော်ပါ။
Get_Meta_tags () သည်ရိုးရှင်းလွယ်ကူပြီးလွယ်ကူစွာအသုံးပြုရလွယ်ကူသော်လည်း၎င်းသည်စံနှင့်ရိုးရှင်းသော Meta အမည် = "... " အခြေအနေများနှင့်သာသက်ဆိုင်သည်။ ၎င်းသည်အမျိုးအစား <title> or property ၏ Meta ကို မ တွားကြပါ။
ရှုပ်ထွေးသော, စံသတ်မှတ်ထားသောသို့မဟုတ် Non-Utf-8 စာမျက်နှာများအတွက် curl + domdocument ပေါင်းစပ်မှုပေါင်းစပ်ရန်အသုံးပြုရန်အကြံပြုသည်။ ပို. ပြောင်းလွယ်ပြင်လွယ်။
Coding, ဝေးလံခေါင်သီတောင်းဆိုမှုပျက်ကွက်ခြင်း, ပြောင်းပြန်တွားခြင်းနှင့် Meta-ross သည်ဘုံအမှားများဖြစ်သည်။ ပြ problems နာအများစုသည်အထက်တွင်ပြ troubl နာဖြေရှင်းရာတွင်တည်ရှိပြီးဖြေရှင်းနိုင်သည်။
JS rendering လုပ်ရန်လိုအပ်သည့်စာမျက်နှာများကိုလုပ်ဆောင်ရန်လိုအပ်ပါက Headless Browser (သို့) server-side rendering solution (Php ဇာင်ဇာ) မှ) သုံးရန်လိုအပ်သည်။