လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အသုံးပြုသူ၏တောင်းဆိုချက်၏အရင်းအမြစ်ကိုခွဲခြမ်းစိတ်ဖြာရန် Parse_Url ကိုသုံးပါ

အသုံးပြုသူ၏တောင်းဆိုချက်၏အရင်းအမြစ်ကိုခွဲခြမ်းစိတ်ဖြာရန် Parse_Url ကိုသုံးပါ

gitbox 2025-05-26

0 ဘ်ဆိုဒ်များဖွံ့ဖြိုးတိုးတက်ရေးလုပ်ငန်းစဉ်အတွင်းသင်၏စာမျက်နှာများကိုအသုံးပြုသူများသည်သင်၏စာမျက်နှာများကိုမည်သည့်နေရာတွင်ဝင်ရောက်ကြည့်ရှုရန်အလွန်အရေးကြီးသောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ အထူးသဖြင့်စာရင်းအင်းများ, PHP သည်ပရိုတိုကော, အိမ်ရှင်, လမ်းကြောင်း, query query parameters များစသည့် URL မှအစိတ်အပိုင်းများကိုအလွယ်တကူထုတ်ယူနိုင်သည့် complet-in function parse_url ကို ထောက်ပံ့ ပေးနိုင်သည်။

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

Parse_url သည် PHP တွင် URLs ကိုခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 parse_url(string $url, int $component = -1): array|string|false
  • $ URL သည်ခွဲခြမ်းစိတ်ဖြာရန် URL string ကိုဖြစ်သည်။

  • $ အစိတ်အပိုင်းသည် URL ၏အချို့သောအစိတ်အပိုင်းတစ်ခုသာပြန်လာသော ( php_url_url_path , စသည်တို့) ဟုသတ်မှတ်သည့် optional parameter တစ်ခုဖြစ်သည်။

  • Return Value သည် URL ၏အစိတ်အပိုင်းများကိုပါ 0 င်သည့်နေရာတစ်ခုဖြစ်သည်။ အကယ်. $ အစိတ်အပိုင်းကို သတ်မှတ်လျှင်သက်ဆိုင်ရာအပိုင်း၏ string ကိုပြန်ပို့သည်။ URL သည်မမှန်ကန်ပါက မှားယွင်းသော တုံ့ပြန်မှု။

2 ။ အသုံးပြုသူအရင်းအမြစ် URL ကိုရယူပါ

အသုံးပြုသူအရင်းအမြစ်လိပ်စာကိုယေဘူယျအားဖြင့် $ _server ['http_referer'] variable ကိုသိမ်းထားသည်။ အဲဒါကနေတဆင့်အသုံးပြုသူကဘယ်ကလဲဆိုတာကိုသိနိုင်တယ်။

 $referer = $_SERVER['HTTP_REFERER'] ?? '';

ထို့နောက်လိပ်စာကိုခွဲခြမ်းစိတ်ဖြာရန် Parse_URL ကို အသုံးပြုသည်။

 if (!empty($referer)) {
    $urlParts = parse_url($referer);
    print_r($urlParts);
}

အသုံးပြုသူသည် https://gitbox.net/products/view အမှာစကားပြောချက်မှခုန်ချပါက output သည်အလွန်ဆင်တူလိမ့်မည် -

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /products/view
    [query] => id=123
)

3 ။ တိကျတဲ့သတင်းအချက်အလက်ထုတ်ယူ

1 ။ အိမ်ရှင်အမည်ကိုထုတ်ယူပါ

အရင်းအမြစ် hostname ရရန်၎င်းကိုသင်ဤကဲ့သို့သောရေးနိုင်သည်။

 $host = parse_url($referer, PHP_URL_HOST);
echo "အရင်းအမြစ်အိမ်ရှင်:$host";

2 ။ လမ်းကြောင်းနှင့်စုံစမ်းမှု parameters တွေကိုရယူပါ

အသုံးပြုသူမည်သည့်စာမျက်နှာမှမည်သည့်စာမျက်နှာမှမည်သည့်စာမျက်နှာမှမည်သည့်စာမျက်နှာမှမည်သည့်နေရာမှမည်ကိုအသုံးပြုသည်ကိုသင်သိလိုပေမည်။

 $path = parse_url($referer, PHP_URL_PATH);
$query = parse_url($referer, PHP_URL_QUERY);
echo "ခေြလမ်း:$path\n";
echo "စုံစမ်းမှုသတ်မှတ်ချက်များ:$query";

သင်လည်းစုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုထပ်မံခွဲထုတ်နိုင်သည်။

 parse_str($query, $queryParams);
print_r($queryParams);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [id] => 123
)

4 ။ ပြီးပြည့်စုံသောဥပမာ

အသုံးပြုသူအရင်းအမြစ်လိပ်စာနှင့်ပတ်သက်သောသတင်းအချက်အလက်အားလုံးကိုခွဲခြမ်းစိတ်ဖြာရန်နှင့်ပြသရန်အပြည့်အစုံပုံသက်သေဖြစ်သည်။

 <?php
$referer = $_SERVER['HTTP_REFERER'] ?? '';

if ($referer) {
    echo "မူရင်းဖြစ်သော Referer: $referer\n\n";

    $urlParts = parse_url($referer);
    echo "ခွဲခြမ်းစိတ်ဖြာပြီးနောက် URL ဆောက်လုပ်ပုံ:\n";
    print_r($urlParts);

    $host = $urlParts['host'] ?? '';
    $path = $urlParts['path'] ?? '';
    $query = $urlParts['query'] ?? '';

    echo "\nအရင်းအမြစ်အိမ်ရှင်名:$host\n";
    echo "来源ခေြလမ်း:$path\n";
    echo "စုံစမ်းမှုသတ်မှတ်ချက်များ字符串:$query\n";

    parse_str($query, $queryParams);
    echo "ခွဲခြမ်းစိတ်ဖြာပြီးနောက်စုံစမ်းမှုသတ်မှတ်ချက်များ:\n";
    print_r($queryParams);
} else {
    echo "အရင်းအမြစ်သတင်းအချက်အလက်မရှိပါ(Referer မတည်ရှိပါဘူး)";
}
?>

5 ။ မှတ်စုဖို့အရာ

  1. Defer သည်အမြဲတမ်းမတည်ရှိပါ ။ အချို့သော browser (ဘရောက်ဆာ) များသည်ရည်ညွှန်းသူတစ် ဦး အားရည်ညွှန်းသူတစ် ဦး ကိုမပို့နိုင်ပါ။ သို့မဟုတ်အသုံးပြုသူသည် privacy settings များအတွက် feature ကိုပိတ်ထားသည်။

  2. Defer ကိုအတုယူနိုင်သည် - ၎င်းကိုတစ်ခုတည်းသောလုံခြုံရေးအဖြစ်မသုံးပါနှင့်။

  3. Cross-Domain တောင်းဆိုမှုပြ issue နာ - အချို့သော browser များသည်ဒိုမိန်းတောင်းဆိုမှုများတွင်အပြည့်အဝစားသုံးသူကိုအပြည့်အဝမပို့နိုင်ပါ။

6 ။ လျှောက်လွှာအခြေအနေများဥပမာ

  • AD ခြေရာခံခြင်း - အသုံးပြုသူသည်ကြော်ငြာ link မှခုန်ချခြင်းရှိမရှိဆုံးဖြတ်သည်။

  • anti-chealt link : Refuder မှဤ site မှမဟုတ်သောသယံဇာတတောင်းဆိုမှုများကိုငြင်းပယ်ရန်။

  • အသုံးပြုသူအပြုအမူခွဲခြမ်းစိတ်ဖြာမှု

ကောက်ချက်

Parse_URL နှင့် $ _server ['http_referer' ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အသုံးပြုသူ၏အရင်းအမြစ်လိပ်စာကိုအလွယ်တကူခွဲခြမ်းစိတ်ဖြာ။ ဝက်ဘ်ဆိုက်လည်ပတ်မှုနှင့်လုံခြုံရေးအတွက်ခိုင်မာသောအထောက်အပံ့များပေးနိုင်သည်။ URLs နှင့်အသုံးပြုသူအချက်အလက်များကိုပြုပြင်သည့်အခါလုံခြုံရေးပြ issues နာများကိုကာကွယ်ရန်အချက်အလက်များကိုစစ်ဆေးခြင်းနှင့်စီစစ်ခြင်းများကိုအမြဲတမ်းထိန်းသိမ်းရန်သတိရပါ။