လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Cross- ပလက်ဖောင်း command ကိုကွပ်မျက် adaptation အကောင်အထည်ဖော်ရန် shell_exec () နှင့်အတူပေါင်းစပ်

Cross- ပလက်ဖောင်း command ကိုကွပ်မျက် adaptation အကောင်အထည်ဖော်ရန် shell_exec () နှင့်အတူပေါင်းစပ်

M66 2025-06-02

PHP applications များကိုတီထွင်သည့်အခါတစ်ခါတစ်ရံတွင်အချို့သောတိကျသောလုပ်ငန်းများကိုဖြည့်စွက်ရန်စနစ် command များကို execute လုပ်ရန်လိုအပ်သည်။ command formatats နှင့်မတူညီသော operating systems ၏အပြုအမူများကွဲပြားမှုများကြောင့် Cross-Platform command command လုပ်ထုံးလုပ်နည်းကိုအောင်မြင်စွာလိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းသည်အရေးကြီးသောကိစ္စတစ်ခုဖြစ်လာသည်။ PHP_UNAME () နှင့် shell_exec () fell_exec () fell_exec () full_exec () သည် operating system ကိုအလိုအလျောက်ခွဲခြား သတ်မှတ်. သက်ဆိုင်ရာ command များကို execute လုပ်နိုင်သည့် PHP script ၏လုပ်ဆောင်မှုနှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ PHP_UNAME သို့မိတ်ဆက်ခြင်း ()

PHP_Uname () သည် PHP မှပါ 0 င်သည့်လုပ်ငန်းလည်ပတ်မှုစနစ်သတင်းအချက်အလက်ရယူရန်လုပ်ဆောင်သည်။ ၎င်းသည်လက်ရှိစနစ်၏အမည်, ဗားရှင်းနှင့်အခြားသတင်းအချက်အလက်များကဲ့သို့သောသတင်းအချက်အလက်များကိုလက်ရှိစနစ်၏အခြားသတင်းအချက်အလက်များကိုပြန်ပို့ပေးနိုင်ပြီးကုဒ်လည်ပတ်နေသည့်ပတ်ဝန်းကျင်ကိုဆုံးဖြတ်ရန်ကူညီနိုင်သည်။

 echo php_uname('s'); // output operating system name,ကဲ့သို့ Windows、Linux、Darwin(macOS)

php_uname ('s') သည် operating system name ကိုပြန်ပို့သည်။

2 ။ နိဒါန်း Shell_exec ()

command-line ညွှန်ကြားချက်များကို execute လုပ်ရန်နှင့် output ကို string တစ်ခုအဖြစ်ပြန်ပေးရန်အတွက် shell_exec () function ကိုအသုံးပြုသည်။ ၎င်းသည်စနစ်၏ Shell command များကိုတိုက်ရိုက်ခေါ်ဆိုရန်ကျွန်ုပ်တို့အားစနစ်၏အခြေခံပညတ်များကိုလည်ပတ်ရန်အလွန်သင့်လျော်သောစနစ်ကိုတိုက်ရိုက်ခေါ်ဆိုရန်ခွင့်ပြုသည်။

 $output = shell_exec('ls -l');
echo $output;

သို့သော် System command များကိုအသုံးပြုခြင်းသည် Cross-platform compatibility ကိစ္စများနှင့်တိုက်ရိုက်ရင်ဆိုင်နေရသည်။

3 ။ Cross-platform command ကိုလိုက်လျောညီထွေပုံဥပမာ

Php_uname () နှင့် shell_exec () shell_exec ()) cross-platform command command ကိုကွပ်မျက်ရန်မည်သို့ပေါင်းစပ်မည်ကိုသရုပ်ပြရန်ဥပမာတစ်ခုကိုကျွန်ုပ်တို့အသုံးပြုသည်။

 <?php
// operating system name ကိုရယူပါ
$os = strtolower(php_uname('s'));

// operating system အရအမိန့်များကိုရွေးချယ်ပါ
if (strpos($os, 'windows') !== false) {
    // Windowsစနစ်ကွပ်မျက်ခံရသော command များ
    $command = 'dir';
} elseif (strpos($os, 'linux') !== false) {
    // Linuxစနစ်ကွပ်မျက်ခံရသော command များ
    $command = 'ls -l';
} elseif (strpos($os, 'darwin') !== false) {
    // macOSစနစ်ကွပ်မျက်ခံရသော command များ
    $command = 'ls -l';
} else {
    die('operating systems ကိုထောက်ပံ့မထားဘူး');
}

// command ကို execute နှင့်ရလဒ်ရ
$output = shell_exec($command);

// output command ကွပ်မျက်ရလဒ်
echo "<pre>$output</pre>";

Code ဖော်ပြချက်:

  • ပထမ ဦး စွာ operating system name ကို PHP_UNAME ('S') မှတစ်ဆင့်ရယူပါ။ ၎င်းကိုကိုက်ညီရန်စာလုံးအသေးသို့ပြောင်းပါ။

  • ကွပ်မျက်ခံရသော command ကို string ကိုပါ 0 င်သောဆက်ဆံရေးကိုအကဲဖြတ်ခြင်းဖြင့်ဆုံးဖြတ်သည်။

  • Relection and output ကို execute လုပ်ရန် shell_exec () ကို သုံးပါ။

  • အကယ်. Windows သည် dir command ကိုအသုံးပြုသည်ဆိုလျှင် Linux နှင့် Macos နှစ်မျိုးလုံး သည် LS -l ကို သုံးပါ။

4 ။ Remote Interface ဥပမာ (Domain Name အစားထိုး)

ကျွန်ုပ်တို့တွင်ကောင်းမွန်သော interface လိပ်စာရှိသည်ဆိုပါစို့။ Code တွင် Domain Name ကို M66.net ဖြင့်အစားထိုးရန်လိုအပ်သည်။

 <?php
// သာမာန်APIစကားပေြာဟော
$apiUrl = 'https://api.m66.net/system/info';

// အသုံးပြု curl ဝေးလံခေါင်သီသောဒေတာကိုရယူပါ
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

echo "Remote interface တုံ့ပြန်မှုအကြောင်းအရာ:\n";
echo $response;

ရှုပ်ထွေးသော Cross-platform စီမံခန့်ခွဲမှုလိုအပ်ချက်များရရှိရန်အတွက်ဒေသန္တရ command ကွပ်မျက်မှုနှင့်ဝေးလံခေါင်သီသော interface ကိုအလွယ်တကူပေါင်းစပ်နိုင်သည်။

5 ။ အကျဉ်းချုပ်