PHP တွင် Hash_update_Stream function သည် dynamatically dynamically values များကိုအထူးသဖြင့် Stream Data ကိုပြုပြင်သည့်အခါ။ Curl နှင့်ပေါင်းစပ်ပြီးကြီးမားသောဖိုင်များ (သို့) streaming data များကိုဒေါင်းလုပ်လုပ်သည့်အခါ Real Time သည်အမှန်တကယ်အချိန်နှင့်တကယ့်အချိန်အတွက် Real Realict ကိုလေ့လာနိုင်သည်။ ဤဆောင်းပါးတွင်၎င်းကိုအောင်မြင်ရန် Hash_update_streream နှင့် ဆံပင်ကောက်ကောက်ကို မည်သို့အသုံးပြုရမည်ကိုလေ့လာပါမည်။
Hash_update_Stream function သည် PHP တွင် built-in hash function များထဲမှတစ်ခုဖြစ်သည်။ ၎င်းသည် Hash တွက်ချက်မှုများကိုတဖြည်းဖြည်းချင်းမွမ်းမံရန်အသုံးပြုသည်။ ဆိုလိုသည်မှာကျွန်ုပ်တို့သည်ဒေတာစီးဆင်းမှုအမြောက်အများကိုလုပ်ဆောင်သောအခါဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်ဘဲဖိုင်၏တန်ဖိုးတန်ဖိုးကိုတဖြည်းဖြည်းတွက်ချက်နိုင်သည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool hash_update_stream ( resource $context , resource $stream )
$ Context : hash_init ကို အသုံးပြု. Hash အခြေအနေတွင်အရင်းအမြစ်များ။
$ stream : များသောအားဖြင့်ဖိုင်သို့မဟုတ်ကွန်ယက်စီးဆင်းမှုမှတဆင့်ဖန်တီးလေ့ရှိသော data stream ၏အရင်းအမြစ်။
Curl သည် URLs မှတစ်ဆင့်ကွဲပြားသောကွန်ယက်အရင်းအမြစ်များနှင့်ဆက်သွယ်ရန်ခွင့်ပြုထားသောစွမ်းအင်သုံး PHP extension ဖြစ်သည်။ ဆံပင်ကောက်ကောက် မှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဆာဗာသို့တောင်းဆိုမှုများကိုပေးပို့နိုင်သည်။ HTTP, HTTPS, FTP တို့ကဲ့သို့သော protocols များများကိုလက်ခံနိုင်သည်။ Curl သည် hash တွက်ချက်မှုအတွက် Hash_update_Stream function သို့ data stream ကိုလွှဲပြောင်းနိုင်သည်။
ဤဥပမာတွင် ကျွန်ုပ်တို့သည် ဖိုင်ကို dynamure download လုပ်ပြီး download လုပ်ပြီးဖိုင်၏ hash တန်ဖိုးကို hash_update_stream function နှင့်ပေါင်းစပ်ပါ။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် hash အခြေအနေကိုစတင်ရန်လိုအပ်သည်။ ကျွန်ုပ်တို့သည် SHA256 ကဲ့သို့သောအသုံးများသောဆေးထည့်သော algorithms များကိုရွေးချယ်နိုင်သည်။
$hashContext = hash_init('sha256'); // ဖြစ်ပေါ်လာခြင်း sha256 Hash အခြေအနေ
ထို့နောက်ကျွန်ုပ်တို့သည် curl ကို အသုံးပြု. curl ကို အသုံးပြု. session ကိုအစပြုပြီး Remote File ၏ဒေတာစီးဆင်းမှုကိုရရှိရန်သက်ဆိုင်ရာရွေးချယ်စရာများကိုသတ်မှတ်ပါမည်။
$url = "http://example.com/largefile"; // ဒေါင်းလုပ်လုပ်ရန်ဖိုင်များ URL
$ch = curl_init($url); // ဖြစ်ပေါ်လာခြင်း curl ရုံးထိုင်အချိန်ကာလ
// တည်ဆောက်သည် curl ရွေးချယ်စရာများ
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // တိုက်ရိုက် output ကိုအစားတုံ့ပြန်မှုကိုပြန်
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // redirection ကိုထောကျပံ့
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // တားမြစ် SSL လက်မှတ်အတည်ပြုချက်(Self- လက်မှတ်ရေးထိုးခဲ့လက်မှတ်များအတွက်သင့်လျော်သော)
// ဒေတာရရန်ဖိုင်စီးကိုဖွင့်ပါ
$stream = curl_exec($ch);
ယခုကျွန်ုပ်တို့သည် Hash_update_Stream function ကို Real-time hash တွက်ချက်မှုများကိုပြုလုပ်ရန် Curl မှရရှိသောအချက်အလက်များကိုဖြတ်ကျော်ရန် hash_update_stream function ကိုသုံးနိုင်သည်။
if ($stream) {
$fp = fopen('php://memory', 'r+'); // Memory Streams ကိုဖန်တီးပါ
fwrite($fp, $stream); // downloaded content ကိုမှတ်ဉာဏ်စီးသို့ရေးပါ
rewind($fp); // stream pointer ကို starting အနေအထားသို့ပြန်သွားပါ
// အသုံးပြု hash_update_stream dynamically ကို vash တန်ဖိုးကို update
hash_update_stream($hashContext, $fp);
fclose($fp); // စီးကိုပိတ်ပါ
}
နောက်ဆုံးအနေဖြင့်ကျွန်ုပ်တို့သည် နောက်ဆုံး hash_final () မှတဆင့်နောက်ဆုံး hash တန်ဖိုးကိုရနိုင်သည်။