stream_copy_to_to_stream () သည် PHP ကိုလွှင့်ထုတ်သည့်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါဘုံနှင့်လက်တွေ့လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းကိုစမ်းချောင်းတစ်ခုမှဒေတာများကိုအခြားတစ်ခုသို့ကူးယူရန်အသုံးပြုသည်။ အခြေခံ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
int stream_copy_to_stream(
resource $from,
resource $to,
?int $length = null,
int $offset = 0
)
ဤလုပ်ဆောင်ချက်၏နောက်ဆုံး parameter $ offset ကို $ Offset သည်အချက်အလက်များကိုမည်သည့် byte ကို byte ကိုရှာဖွေရန်အသုံးပြုသည်။ မှန်ကန်စွာသတ်မှတ်ထားပါက၎င်းသည်မိတ္တူကူးခြင်း၏ start ကိုတိကျစွာထိန်းချုပ်ရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။ သို့သော်ချိန်ညှိချက်များမမှန်ကန်ပါကအချက်အလက်ရှုပ်ထွေးမှုများကိုဖြစ်ပေါ်စေပြီးအချက်အလက်များဆုံးရှုံးခြင်းသို့မဟုတ်ဖိုင်ဖွဲ့စည်းပုံသို့မဟုတ်ဖိုင်တည်ဆောက်ပုံပျက်ခြင်းကိုဖြစ်ပေါ်စေသည်။
ဤဆောင်းပါးသည် offset parameter ၏အမှားအယွင်းများ၏အမှားအယွင်းများ၏ဖြစ်နိုင်ချေရှိသောအကျိုးဆက်များကိုနက်နက်နဲနဲလေ့လာသုံးသပ်ပြီးပြ the နာဖြစ်သည့်အခြေအနေများကိုသရုပ်ဖော်ရန်လက်တွေ့ကျသောဥပမာများကိုပြုလုပ်မည်။
ကျွန်ုပ်တို့တွင်အောက်ပါအကြောင်းအရာများပါ 0 င်သော JSON ဖိုင်ရှိသည်ဆိုပါစို့။
{"id":123,"name":"Alice","email":"[email protected]"}
ဖိုင်မှ "name" အကွက်နှင့်စသောအကြောင်းအရာကိုဖတ်ရန်နှင့်အခြားစီးသို့ကူးယူပါ။ အကယ်. offset ကိုမှားယွင်းစွာသတ်မှတ်ထားပါက၎င်းအားအမှားဖြင့်သတ်မှတ်ခြင်းကဲ့သို့ (နှင့်အမှန်တကယ် 9 ဖြစ်သင့်သည်) ကိုဖတ်ပါ။
123,"name":"Alice","email":"[email protected]"}
သိသာထင်ရှားတဲ့ဒီတော့ဒါကငါတို့လိုချင်တာမဟုတ်ဘူး, ဒေတာဖွဲ့စည်းပုံလည်းယိုယွင်းပျက်စီးသွားတယ်။
ဥပမာအားဖြင့်,
stream_copy_to_stream($src, $dest, 20, 10);
သင်မူလက 10 ကြိမ်မြောက် byte မှ 20 bytes များကိုကူးယူနေသည်ဟုယူဆရသည် ။
ပိုဆိုးသည်မှာ destination stream ကို ငွေဖြည့် သည့်အချိန်တွင်မထိန်းသိမ်းသင့်သည့်ဒေတာအချို့အစိတ်အပိုင်းအချို့ကိုသင် overwrite လုပ်သည်။
အတွင်းပိုင်း stream_copy_to_stream () သည် $ Offset မှသတ်မှတ်ထားသောတည်နေရာကိုရှာဖွေရန်ကြိုးစားလိမ့်မည်။ အကယ်. အရင်းအမြစ်စီးဆင်းမှုသည်မရှာဖွေနိုင်သောစီးဆင်းမှုမရှိသေးပါက (ဤသို့သောပတ်ရစ်ပုတ်ပါသို့မဟုတ်အချို့သော HTTP Stream ကဲ့သို့) အကယ်. Offset Non-0 ကိုသတ်မှတ်ခြင်းသည်တိုက်ရိုက်ကျရှုံးခြင်း,
PHP Warning: stream_copy_to_stream(): stream does not support seeking in ...
ထို့ကြောင့် offset ကိုအသုံးပြုခြင်းသည်အရင်းအမြစ်ချောင်းအမျိုးအစားကိုနားလည်မှုအပေါ်အခြေခံရမည်။
ပြ the နာကိုတိကျတဲ့ဥပမာတစ်ခုဖြင့်ကြည့်ကြစို့။
$src = fopen('data.json', 'r');
$dest = fopen('php://temp', 'w+');
stream_copy_to_stream($src, $dest, null, 50);
rewind($dest);
echo stream_get_contents($dest);
Data.json ၏စုစုပေါင်းအရွယ်အစားကိုယူဆသည်မှာ 48 bytes ဖြစ်သည်ဟုယူဆသော်လည်းသင် 50 ကိုအပြီးသတ်သတ်မှတ်မည်။ ရလဒ်ကားအဘယ်နည်း။
output ကိုဗလာ။ Offset 50 ကတည်းကအရင်းအမြစ်စီးသည်ကူးယူရန်အချက်အလက်များမရှိပါ။
အပြန်အလှန်အားဖြင့်, offset သည်သေးငယ်လွန်းပါက 0 0 င် 0 င်ပါက 0 မ်းသာသည်,
ဒေတာဖွဲ့စည်းပုံကိုတိကျသောတိုင်းတာခြင်း - ftell () နှင့် fseek) နှင့် fseek () fseek () fseek ()) ကိုအသုံးပြုပါ။
အသုံးပြုမှုရည်မှန်းချက်ကိုဖော်ထုတ်ပါ။
stream အမျိုးအစားများကိုသတိထားပါ။ PHP Stream Wrappers (ဥပမာ PHP: // input ) အချို့ကိုရှာဖွေခြင်းကိုမထောက်ခံပါ။
အမှားစစ်ဆေးခြင်း - မိတ္တူတစ်စောင်စီသည်မိတ္တူကူးယူပြီးနောက်ပြန်လည်ရောက်ရှိလာခြင်းရှိမရှိစစ်ဆေးပါ။
steam_copy_to_stream () သည်အစွမ်းထက်သော်လည်းအလွယ်တကူအလွယ်တကူအလွယ်တကူလုပ်ဆောင်သောလုပ်ဆောင်ချက်ဖြစ်သည်။ အထူးသဖြင့်၎င်းသည်မှားယွင်းစွာ သတ်မှတ်ထား ပါက၎င်းသည်မှားယွင်းစွာသတ်မှတ်ထားပါကအချက်အလက်များကိုမှားယွင်းသောအနေအထားမှစတင်ရန်,
ဤဆောင်းပါး၏နိဒါန်းမှတစ်ဆင့်သင်သည် Offset Setting Errors ၏ဖြစ်နိုင်ချေရှိသောအကျိုးသက်ရောက်မှုကိုရှင်းလင်းစွာနားလည်သဘောပေါက်ရန်ကျွန်ုပ်ယုံကြည်သည်။ အရေးအသားကုဒ်ရေးရာကုဒ်ကိုရှောင်ရှားရန်သော့ချက်ဖြစ်သောဒေတာအဆောက်အအုံများကိုအထိခိုက်မခံသော,