လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_context_get_options ကိုဘယ်လိုသုံးရမလဲ။

stream_context_get_options ကိုဘယ်လိုသုံးရမလဲ။

M66 2025-06-04

PHP တွင် stream_context_get_options function သည် stream အခြေအနေကိုအသုံးပြုသောအခါအလွန်အသုံးဝင်သည်, အချို့သောရွေးချယ်စရာများသည် timeout သို့မဟုတ် user-agent ကဲ့သို့သော stream အခြေအနေတွင်အောင်မြင်စွာတပ်ဆင်ထားခြင်းရှိမရှိအတည်ပြုရန်အသုံးပြုနိုင်သည်။

Stream_context_crexe မှတစ်ဆင့် Stream Context ကိုဖန်တီးပြီး၎င်းတွင်ရွေးချယ်စရာများကိုသတ်မှတ်ပါ ဤဆောင်းပါးသည်အချိန်ကုန်ခြင်းနှင့်အသုံးပြုသူကိုယ်စားလှယ်များအောင်မြင်စွာသတ်မှတ်ခြင်းရှိမရှိစစ်ဆေးရန်ဤလုပ်ငန်းကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

stream အခြေအနေကိုဖန်တီးပြီးရွေးချယ်စရာများကိုသတ်မှတ်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် stream အခြေအနေကိုဖန်တီးရန်နှင့်ရွေးချယ်စရာများကိုသတ်မှတ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် အချိန်ကုန်လွှာ ကို HTTP option တွင် time_agent ကို HTTP option တွင် သတ်မှတ်. တောင်းဆိုမှု header တွင်အသုံးပြုသူ - ကိုယ်စားလှယ်ကိုသတ်မှတ်ရန်သတ်မှတ်နိုင်သည်။

 <?php
// Stream အခြေအနေရွေးချယ်စရာများဖန်တီးပါ
$options = [
    'http' => [
        'timeout' => 10,  // အချိန်ကုန်အချိန်ကိုသတ်မှတ်ပါ10စက်ဏန့်
        'user_agent' => 'PHP-Client/1.0'  // တည်ဆောက်သည်User-Agent
    ]
];

// တစ် ဦး stream အခြေအနေကိုဖန်တီးပါ
$context = stream_context_create($options);

// ကွန်ယက်တောင်းဆိုမှုများအတွက်ဤ streaming အခြေအနေကိုသုံးပါ
$url = "http://m66.net/somepath";
$response = file_get_contents($url, false, $context);

// output တုံ့ပြန်မှုရလဒ်
echo $response;
?>

အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့သည်ရွေးချယ်စရာနှစ်ခုကိုသတ်မှတ်ထားသည်။

  • အချိန်ကုန်သည် 10 စက္ကန့်ဖြစ်သည်။

  • User_agent သည် PHP-client / 1.0 ဖြစ်သည်။

ကျွန်ုပ်တို့သည်တောင်းဆိုမှုကိုပေးပို့ရန်နှင့်တုန့်ပြန်မှုကိုဖတ်ရန် File_get_Contore ကို သုံးပါ။

ချိန်ညှိချက်များကိုအတည်ပြုရန် Stream_Context_Get_options ကိုသုံးပါ

ထို့နောက်ဤရွေးချယ်စရာများကိုအောင်မြင်စွာသတ်မှတ်ထားခြင်းရှိမရှိအတည်ပြုရန် Stream_context_et_oPtions ကို သုံးပါ။ ဤလုပ်ဆောင်ချက်သည် Stream အခြေအနေတွင်ပါ 0 င်သော options များပါ 0 င်သည့်နေရာများပါ 0 ်သည့် array တစ်ခုပါ 0 င သည်

 <?php
// Stream အခြေအနေရှိ Options အားလုံးကိုရယူပါ
$contextOptions = stream_context_get_options($context);

// output စီးဆင်းမှုအခြေအနေတွင်အားလုံးရွေးချယ်စရာများ
echo '<pre>';
print_r($contextOptions);
echo '</pre>';

// 检查是否တည်ဆောက်သည်了timeoutနှင့်user_agent
if (isset($contextOptions['http']['timeout'])) {
    echo '超时时间已တည်ဆောက်သည်为:' . $contextOptions['http']['timeout'] . 'စက်ဏန့်<br>';
} else {
    echo '未တည်ဆောက်သည်超时时间<br>';
}

if (isset($contextOptions['http']['user_agent'])) {
    echo 'User-Agent已တည်ဆောက်သည်为:' . $contextOptions['http']['user_agent'] . '<br>';
} else {
    echo '未တည်ဆောက်သည်User-Agent<br>';
}
?>

ဤကုဒ်တွင် stream_context_et_et_options များကို Stream Options ရှိရွေးချယ်စရာများကိုရယူရန်နှင့်၎င်းကိုပုံနှိပ်ထုတ်ဝေသည်။ ထို့နောက် အချိန်ကုန်ခြင်း နှင့် user_agent ကို usset အားဖြင့်အောင်မြင်စွာစစ်ဆေးသည်ကိုစစ်ဆေးပါ။

စစ်ဆင်ရေးရလဒ်များကိုခွဲခြမ်းစိတ်ဖြာခြင်း

အကယ်. Stream Context option ကိုအောင်မြင်စွာသတ်မှတ်ထားပါက stream_context_et_et_et_et_et_et_et_et_et_options functions မှပြန်လာသောခင်းကျင်းမှုသည်ကျွန်ုပ်တို့သတ်မှတ်ထားသောရွေးချယ်စရာများပါ 0 င်မည်ဖြစ်သည်။ ဥပမာအားဖြင့်, ပြန်လာရလဒ်ကဒီလိုမျိုးဖြစ်လိမ့်မယ်:

 Array
(
    [http] => Array
        (
            [timeout] => 10
            [user_agent] => PHP-Client/1.0
        )
)

ထိုအခါဇာတ်ညွှန်း output ကိုလိမ့်မယ်:

 超时时间已တည်ဆောက်သည်为:10စက်ဏန့်
User-Agent已တည်ဆောက်သည်为:PHP-Client/1.0

အကယ်. ဤရွေးချယ်မှုများကိုအောင်မြင်စွာမသတ်မှတ်ပါက ISSET စစ်ဆေးမှုသည် မှားယွင်းသော စစ်ဆေးမှုကိုပြန်လည်ရောက်ရှိစေပြီး "အချိန်ကုန်မထားသော" သို့မဟုတ် "User-agent" ကိုပြသသည်။

အကျဉ်းချုပ်

stream_context_get_options ကို အသုံးပြုခြင်းအားဖြင့် timeout ( timeout ) နှင့် user-user- user actions) ကဲ့သို့သောအောင်မြင်မှုများစွာကိုအောင်မြင်စွာသတ်မှတ်ခြင်းရှိမရှိအလွယ်တကူအတည်ပြုနိုင်သည်။ Stream Context settings ကိုဖြေရှင်းရန်နှင့်အတည်ပြုသည့်အခါဤချဉ်းကပ်မှုသည်အလွန်အသုံးဝင်သည်။