လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> URL အစိတ်အပိုင်းများကိုဒေတာဘေ့စ်နှင့်သိုလှောင်ရန် Parse_URL ကိုသုံးပါ

URL အစိတ်အပိုင်းများကိုဒေတာဘေ့စ်နှင့်သိုလှောင်ရန် Parse_URL ကိုသုံးပါ

gitbox 2025-05-20

Web Development တွင် URL များကိုထပ်မံလုပ်ဆောင်ရန်သို့မဟုတ်သိုလှောင်ရန်အတွက်အသုံးဝင်သောသတင်းအချက်အလက်များကိုထုတ်ယူရန် URLs များကိုခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, အသုံးပြုသူအရင်းအမြစ်များကိုခွဲခြမ်းစိတ်ဖြာပါ, domain name ကိုတောင်းဆိုခြင်းအမျိုးအစားကိုစစ်ထုတ်ရန်သို့မဟုတ် API တောင်းဆိုမှုတစ်ခုစီ၏ဖွဲ့စည်းပုံကိုမှတ်တမ်းတင်ပါ။ PHP သည်ကျွန်ုပ်တို့အားဤလုပ်ငန်းကိုထိထိရောက်ရောက်ဖြည့်ဆည်းနိုင်အောင်ကူညီနိုင်သည့်အစွမ်းထက်သော function ကိုတပ်ဆင်ထားသော function ကိုထောက်ပံ့ပေးသည်

1 ။ Parse_url () function ကိုနားလည်ပါ

Parse_Url () PHP မှ PHP မှ PHP မှပေးသော function ကိုဖြစ်ပါတယ်။ ၎င်းသည်အစီအစဉ်, အိမ်ရှင်, ဆိပ်ကမ်း, လမ်းကြောင်း,

Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array parse_url(string $url, int $component = -1)

ဥပမာ -

 $url = 'https://gitbox.net:8080/path/to/resource.php?user=test&id=123#section1';
$parts = parse_url($url);
print_r($parts);

ရလဒ်ရလဒ် -

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [port] => 8080
    [path] => /path/to/resource.php
    [query] => user=test&id=123
    [fragment] => section1
)

2 ။ စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုဖြုတ်ချပါ

Parse_URL () သည် စုံစမ်းမှု strings strings ကိုထုတ်ယူနိုင်သော်လည်း, အကယ်. သင်သည်၎င်း၏ပြည်တွင်းရေး parameter ဖွဲ့စည်းပုံကိုထပ်မံခွဲထုတ်လိုပါကကျွန်ုပ်တို့သည် Parse_Str () function ကိုပေါင်းစပ်နိုင်သည်။

 $query = $parts['query'] ?? '';
parse_str($query, $queryParams);
print_r($queryParams);

ထုတ်လုပ်မှု -

 Array
(
    [user] => test
    [id] => 123
)

3 ။ စနစ်တကျ URL အချက်အလက်များကိုဒေတာဘေ့စ်နှင့် တွဲဖက်. သိမ်းဆည်းခြင်း

သိုလှောင်မှုနှင့်ပြန်လည်ရယူခြင်းကိုလွယ်ကူချောမွေ့စေရန်အတွက်အောက်ပါဒေတာဘေ့စ်ဖွဲ့စည်းပုံကိုဒီဇိုင်းဆွဲနိုင်သည် (MySQL ကိုဥပမာအဖြစ်ယူပြီး)

 CREATE TABLE url_info (
    id INT AUTO_INCREMENT PRIMARY KEY,
    full_url TEXT NOT NULL,
    scheme VARCHAR(10),
    host VARCHAR(255),
    port INT,
    path TEXT,
    query TEXT,
    fragment VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

ထို့နောက် PHP တွင် URL parsing ရလဒ်ကိုထည့်ပါ။

 $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');

$url = 'https://gitbox.net:8080/path/to/resource.php?user=test&id=123#section1';
$parts = parse_url($url);

$stmt = $pdo->prepare("
    INSERT INTO url_info (full_url, scheme, host, port, path, query, fragment) 
    VALUES (:full_url, :scheme, :host, :port, :path, :query, :fragment)
");

$stmt->execute([
    ':full_url' => $url,
    ':scheme'   => $parts['scheme'] ?? null,
    ':host'     => $parts['host'] ?? null,
    ':port'     => $parts['port'] ?? null,
    ':path'     => $parts['path'] ?? null,
    ':query'    => $parts['query'] ?? null,
    ':fragment' => $parts['fragment'] ?? null
]);

4 ။ လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်တိုးချဲ့ခြင်း

အခြေခံသိုလှောင်မှုအပြင်အောက်ပါလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်နိုင်သည်။

  • အညွှန်းကိန်း ကို တည်ဆောက်ပါ

  • ခွဲခြမ်းစိတ်ဖြာခြင်းရင်းမြစ် - Extract Utm_ * သည်လှုပ်ရှားမှုခြေရာခံခြင်းအတွက် မေးမြန်းခြင်း မှထုတ်ယူခြင်း,

  • Blacklistist filtering: host သည် နာမည်ပျက်စာရင်းတွင်ပိုင်ဆိုင်မှုရှိမရှိမေးမြန်းခြင်း။

5 ။ သိကောင်းစရာများနှင့်ကြိုတင်ကာကွယ်မှုများ

  • မမှန်မကန် urls များအတွက် Parse_Url () မှားယွင်းစွာ ပြန်ပို့ခြင်း, ချက်လက်မှတ်ထည့်ပါ။

  • အပြည်ပြည်ဆိုင်ရာဒိုမိန်းအမည်ကိုကြုံတွေ့ရသောအခါ၎င်းကိုကိုင်တွယ်ရန် IDN_TO_UTF8 () ကို သုံးနိုင်သည်။

  • အကယ်. သင်သည် Splice URL ကိုပြောင်းရန်လိုအပ်ပါက http_build_Query () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုသင်ကိုယ်တိုင်ခွဲဝေနိုင်သည်။

အကျဉ်းချုပ်

Parse_Url () နှင့် Parse_str_str_str) မှတစ်ဆင့် URL မှသော့ချက်အချက်အလက်များကိုလျင်မြန်စွာထုတ်ယူနိုင်ပြီး, နောက်ဆက်တွဲအပြောင်းအလဲများအတွက်ပြုလုပ်နိုင်သည့်ဒေတာဘေ့စ်နှင့်ပေါင်းစပ်ထားသော်လည်းအချက်အလက်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်စနစ်တိုးချဲ့ခြင်းအတွက်အခြေခံအုတ်မြစ်ချသည်။ log system တစ်ခုတည်ဆောက်ခြင်းသို့မဟုတ်အသုံးပြုသူအပြုအမူများကိုခြေရာခံသည်ဖြစ်စေဤနည်းစနစ်ကိုကျွမ်းကျင်မှုသည်စွမ်းဆောင်ရည်နှင့်ထိန်းသိမ်းမှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။