PHP တွင် hash_update_stream () function ကိုအသုံးပြုသည်။ အချက်အလက်အမြောက်အများကိုပြုပြင်သည့်အခါဒေတာအမြောက်အများကိုပြုပြင်သည့်အခါဒေတာအမြောက်အမြားကိုပြုပြင်ရန်အလွန်အသုံးဝင်သည်။ ကုဒ်၏ပြန်လည်သုံးသပ်ခြင်းနှင့်ပမာဏကိုတိုးမြှင့်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်ဤလုပ်ဆောင်မှုကိုစာသင်ခန်းသို့စာသင်ယူသည်။ ဤဆောင်းပါးသည် streaming data ကိုတွက်ချက်မှုတွက်ချက်မှုအားတွက်ချက်မှုတွက်ချက်မှုကိုအကောင်အထည်ဖော်ရန်နှင့် php function hash_update_stram () ကိုအကောင်အထည်ဖော်ရန်နှင့် Encaps function hash function hash_update_stream () ကို ရှင်းရှင်းလင်းလင်း encapsult ကိုမည်သို့တည်ဆောက်ရမည်ကိုပြသပါမည်။
streaming data hash တွက်ချက်မှုသည် Hash တန်ဖိုးကိုတွက်ချက်သောအခါအချက်အလက်များကိုတစ်ချိန်တည်းတွင်မှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ခြင်းထက်အချက်အလက်များကိုတဖြည်းဖြည်းဖြတ်သန်းသွားလာသည်။ ဤချဉ်းကပ်မှုသည်များသောအားဖြင့်ကြီးမားသောဖိုင်များသို့မဟုတ်အခြားအကြီးစားဒေတာစုဆောင်းမှုများကိုကိုင်တွယ်ရန်အထူးသဖြင့်သင့်လျော်သည်။
PHP တွင် hash_update_stream () function သည် streaming data hash လုပ်နိုင်သည်။ စီမံကိန်းတွင်ပြန်လည်အသုံးပြုရန်ပိုမိုလွယ်ကူစေရန်လုပ်ဆောင်မှုကိုကျွန်ုပ်တို့ onaps လုပ်ပါလိမ့်မည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် streaming hashing ၏လုပ်ဆောင်နိုင်စွမ်းကို Encapsult လုပ်ရန်အတန်းကိုသတ်မှတ်ရန်လိုအပ်သည်။ အောက်ဖော်ပြပါသည် hash_update_strade () function ကိုပါ 0 င်သည့်ရိုးရှင်းသော Hash Class ဒီဇိုင်းဖြစ်သည်။
<?php
class StreamHasher
{
private $algorithm; // hash algorithm
private $context; // Hash အခြေအနေ
// လမ်းဆောက်လုပ်ရေး,指定hash algorithm
public function __construct($algorithm = 'sha256')
{
$this->algorithm = $algorithm;
$this->context = hash_init($this->algorithm);
}
// Hash တန်ဖိုးကို Update လုပ်ပါ,streaming ဒေတာကို processing
public function updateFromStream($stream)
{
// စီးဆင်းမှုသည်မှန်ကန်ကြောင်းသေချာပါစေ
if (!is_resource($stream) || get_resource_type($stream) !== 'stream') {
throw new InvalidArgumentException('Invalid stream resource provided.');
}
// အသုံးပြု hash_update_stream() streaming ဒေတာ hash တွက်ချက်မှုလုပ်ဆောင်ပါ
hash_update_stream($this->context, $stream);
}
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
public function getHash()
{
return hash_final($this->context);
}
// 重置Hash အခြေအနေ(ဥပမာအားဖြင့်,ဖိုင်များစွာကိုလုပ်ငန်းများ၌ပြုလုပ်ရန်လိုအပ်ပါက)
public function reset()
{
$this->context = hash_init($this->algorithm);
}
}
?>
ထို့နောက်ကျွန်ုပ်တို့သည်ဤ လွှင့်ဌာနတော် အတန်းအစားကိုဆေးထည့်ရန်တွက်ချက်မှုများကိုမည်သို့အသုံးပြုရမည်ကိုပြသပါမည်။ ကျွန်ုပ်တို့တွင် Hash တန်ဖိုးကိုတွက်ချက်ရန်လိုအပ်သည့်ဖိုင်ကြီးတစ်ခုရှိသည်ဆိုပါစို့ ။
<?php
// မိတ်ဆက်ခဲ့သည် StreamHasher အမျိုးအစား
require_once 'StreamHasher.php';
// a StreamHasher နမူနာ,အသုံးပြု sha256 algorithm
$hasher = new StreamHasher('sha256');
// hash တန်ဖိုးကိုတွက်ချက်ရန်လိုအပ်သည့်ဖိုင်ကြီးတစ်ခုဖွင့်ပါ
$stream = fopen('largefile.txt', 'rb');
if ($stream === false) {
die('Failed to open file.');
}
// အသုံးပြု StreamHasher အမျိုးအစား计算哈希
$hasher->updateFromStream($stream);
// ဖိုင်စီးကိုပိတ်ပါ
fclose($stream);
// တွက်ချက်ထားသည့် hash တန်ဖိုးကို output
echo "The hash value is: " . $hasher->getHash() . PHP_EOL;
?>
streamhasher လူတန်းစား:
__Construct ($ algorithm) - SHA256 ကိုပျက်ကွက်ခြင်း,
UpdateFromstream ($ stream) - ဤနည်းလမ်းသည်ခိုင်လုံသောဖိုင်စီးကိုလက်ခံပြီး hash တန်ဖိုးကို update လုပ်ရန် hash_update_stream () function ကိုအသုံးပြုသည်။
Gethash () : တွက်ချက်ထားသောနောက်ဆုံး hash တန်ဖိုးကိုပြန်ပို့သည်။
Reset () : Hash အခြေအနေကိုပြန်လည်သတ်မှတ်ပါ, Stream ဒေတာမျိုးစုံကိုပြုပြင်သည့်အခါ hash တန်ဖိုးကိုပြန်လည်တွက်ချက်ရန်ခွင့်ပြုပါ။
အသုံးပြုမှုဥပမာ -
ကျွန်ုပ်တို့သည် Fopen () ဖိုင်ကြီးတစ်ခုဖွင့်ရန်နှင့်ဖိုင်စီးကို updatefromstram () နည်းလမ်းသို့ကူးယူရန်အသုံးပြုသည်။
ထို့နောက်နောက်ဆုံး HALH တန်ဖိုးကို Gethash ဟု ခေါ်ဆိုခြင်းဖြင့်ရယူသည်။
ဝေးလံခေါင်ဖျားသောဆာဗာသို့ဖိုင်များပို့ခြင်းကဲ့သို့သောစမ်းချောင်းရှိအခြားလုပ်ငန်းများကိုသင်လုပ်ဆောင်ရန်လိုအပ်ပါက M66.net domain name ကိုမူလ URL ကိုအစားထိုးနိုင်သည်။ ဥပမာအားဖြင့်:
<?php
$url = 'https://example.com/upload';
$new_url = str_replace('example.com', 'm66.net', $url);
echo "Updated URL: " . $new_url;
?>
ဤကုဒ်သည် p66.net နှင့်အတူ URL ရှိ URL တွင် url တွင်အစားထိုးသည်။
ဤဆောင်းပါးသည် streaming data hash တွက်ချက်မှုတွက်ချက်မှုကိုအထောက်အကူပြုရန် php function hash_update_stram () ကိုမည်သို့ပြုလုပ်ရမည်ကိုမိတ်ဆက်ပေးသည်။ ဤနည်းအားဖြင့်ဖိုင်တွဲများသို့မဟုတ်အခြား streaming data များကိုပြုပြင်ခြင်း, သင်၏အစီအစဉ်၏ထိရောက်မှုနှင့်ပမာဏကိုတိုးတက်စေရန်အတွက်အချက်အလက်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့မထည့်သွင်းနိုင်ပါ။
Hashing algorithm သို့မဟုတ်အခြား settings များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်သို့မဟုတ်ပြုပြင်ရန်လိုအပ်ပါက Streamhashher အတန်းအစား၏အကောင်အထည်ဖော်မှုကိုတိုက်ရိုက်ပြုပြင်နိုင်သည်။