လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် strings များကိုခွဲထုတ်ရန် Exploit function ကိုအသုံးပြုခြင်း၏အခြေခံအသုံးပြုမှု

PHP တွင် strings များကိုခွဲထုတ်ရန် Exploit function ကိုအသုံးပြုခြင်း၏အခြေခံအသုံးပြုမှု

gitbox 2025-05-26

1 ။ exploit () function ကို၏အခြေခံ syntax

array explode(string $separator, string $string, int $limit = PHP_INT_MAX)

  • $ Separator - သတ်မှတ်ထားသော delimiter (string type) သည်မူလကြိုးကိုမည်သည့်နေရာတွင်ခွဲခြားရမည်ကိုဆုံးဖြတ်ရန်အသုံးပြုသည်။

  • $ string : ခွဲထွက်ရန်လိုအပ်သည့်မူရင်း string ကို;

  • $ ကန့်သတ်ချက် (optional): array မှပြန်လာဒြပ်စင်အရေအတွက်ကိုကန့်သတ်ရန်အသုံးပြုခဲ့သည်။ ဒီ parameter သည်သတ်မှတ်ထားလျှင်:

    • အပြုသဘောဆောင်သောနံပါတ်ဖြစ်ပါ, ဒေါ်လာကန့်သတ် ချက်ထက်မပိုပါနှင့်။

    • အကယ်. ၎င်းသည်အနှုတ်လက်ခဏာနံပါတ်ဖြစ်ပါကသတ်မှတ်ထားသောဒြပ်စင်အရေအတွက်ကိုအဆုံးမှလျစ်လျူရှုလိမ့်မည်။

    • 0 ပြန်လာလျှင်အချည်းနှီးသောခင်းကျင်း (Php 8.0.0 မှစတင်) ။


2 ။ Exploit ၏အခြေခံသုံးခြင်းဥပမာများ ()

ဥပမာ 1 - ကော်မာနှင့်သီးခြားကြိုးများ

 <?php
$input = "apple,banana,orange";
$result = explode(",", $input);
print_r($result);
?>

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

 Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)

ဤဥပမာသည်ကော်မာခွဲထားသောသစ်သီးများစာရင်းကို string တစ်ခုစီသို့မည်သို့ခွဲခြားရမည်ကိုပြသသည်။


ဥပမာ 2 - ကန့်သတ်ထားသော parameters တွေကိုသုံးပါ

 <?php
$input = "one|two|three|four";
$result = explode("|", $input, 3);
print_r($result);
?>

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

 Array
(
    [0] => one
    [1] => two
    [2] => three|four
)

$ ကန့်သတ် = 3 ကိုသတ်မှတ်ထားပါ, တတိယဒြပ်စင်တွင်ကျန်ရှိနေသောအသုံးဝင်သောအကြောင်းအရာများပါ 0 င်မည်ဖြစ်သည်။


ဥပမာ 3: လမ်းကြောင်း strings

သင့်တွင် URL Path / User / Profile / Profile / Settings ရှိသည်ဆိုပါစို့။

 <?php
$url = "/user/profile/settings";
$parts = explode("/", $url);
print_r($parts);
?>

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

 Array
(
    [0] => 
    [1] => user
    [2] => profile
    [3] => settings
)

မှတ်ချက်။ ။ လမ်းကြောင်းသည် slash ဖြင့်စတင်သည်ကတည်းက Exploit () ၏ရလဒ်အနေဖြင့်ပထမဆုံး element ဖြစ်သည်။

null တန်ဖိုးများကိုစစ်ထုတ်ရန် array_filter () ကို သုံးနိုင်သည်။

 <?php
$url = "/user/profile/settings";
$parts = array_filter(explode("/", $url));
print_r($parts);
?>

3 ။ လက်တွေ့ဥပမာ - Parse Parameter ကြိုး

အကယ်. သင်သည်စုံစမ်းမှု string တစ်ခုမှ parameters များကိုသင်ရရှိပါက, NAME = John & A-qu = 30 & 30 & City = Beijing , FijingIt ကိုသင်ပထမ ဦး ဆုံးအသုံးချနိုင်မည် () split:

 <?php
$query = "name=John&age=30&city=Beijing";
$params = explode("&", $query);
$parsed = [];

foreach ($params as $param) {
    list($key, $value) = explode("=", $param);
    $parsed[$key] = $value;
}

print_r($parsed);
?>

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

 Array
(
    [name] => John
    [age] => 30
    [city] => Beijing
)

4 ။ အခြား stringing processing လုပ်ဆောင်ချက်များကိုနှင့်အတူပေါင်းစပ်အသုံးပြုခဲ့သည်

Exploit () ကို များသောအားဖြင့် trim () , array_map () ကဲ့သို့သောလုပ်ဆောင်ချက်များကို တွဲဖက်. အသုံးပြုလေ့ရှိသည်။ ဥပမာအားဖြင့် CSV အချက်အလက်များကိုလုပ်ဆောင်သည့်အခါနေရာများကိုပထမနေရာချထားရန်လိုအပ်နိုင်သည် -

 <?php
$csv = "Tom, Jerry , Spike ";
$names = array_map('trim', explode(",", $csv));
print_r($names);
?>

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

 Array
(
    [0] => Tom
    [1] => Jerry
    [2] => Spike
)

5 ။ အသုံးချခြင်း၏ဖြစ်နိုင်ချေရှိသောအခြေအနေများ () အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် ()

  1. Parse CSV ဒေတာအတန်း

  2. အပြောင်းအလဲနဲ့ပေါင်းစပ်လယ်ကွင်းဒေတာဘေ့စကနေဖတ်ပါ

  3. စည်းမျဉ်းစည်းကမ်းများအရအခုတ် log များသို့မဟုတ်လမ်းကြောင်းများ

  4. စိတ်ကြိုက်ပြင်ဆင်ခြင်းပုံစံများပြိုကွဲပျက်စီးခြင်း

  5. Process URL လမ်းကြောင်း

ဥပမာအားဖြင့်, ရိုးရှင်းသော routing system တစ်ခုတွင်ကျွန်ုပ်တို့သည် URL ကိုဤကဲ့သို့သော URL ကိုခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

 <?php
$request = "/article/123";
$segments = array_filter(explode("/", $request));
// gitbox.net လမ်းကြောင်းပြောင်းခြင်း
if (isset($segments[0]) && $segments[0] === "article") {
    $articleId = $segments[1] ?? null;
    echo "သင်ဆောင်းပါးသို့လာရောက်လည်ပတ်သည်IDအတွက် $articleId စာမျက်နှာ";
}
?>