လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Download တိုးတက်မှုကိုထိန်းချုပ်လိုပါသလား။ curl_pause ၏တိကျသောအကောင်အထည်ဖော်မှုနည်းလမ်းများကဘာတွေလဲ။

Download တိုးတက်မှုကိုထိန်းချုပ်လိုပါသလား။ curl_pause ၏တိကျသောအကောင်အထည်ဖော်မှုနည်းလမ်းများကဘာတွေလဲ။

M66 2025-08-04

Curl ဆိုသည်မှာကွန်ယက်အရင်းအမြစ်များအတွက်ဖိုင်များအတွက် PHP အတွက် PHP ကိုအသုံးပြုသောအခါ PHP ကိုအသုံးပြုသောအခါအသုံးအများဆုံး tools များထဲမှတစ်ခုဖြစ်သည်။ ယေဘုယျအားဖြင့်ပြောရလျှင်ကျွန်ုပ်တို့သည် curl_exec () ကို အသုံးပြုသည်။ သို့သော်အချို့သောအဆင့်မြင့်မြင်ကွင်းများတွင်သင်စောင့်ဆိုင်းရန်လိုပါကသင် curl_pause () function ကိုသုံးရမည်။

ဤဆောင်းပါးသည်ပိုမိုရှုပ်ထွေးသော download control အောင်မြင်ရန်အခြားဆံပင်ကောက်ဖူးခြင်းများနှင့်အခြားဆံပင်ကောက်ယူမှုများကိုပေါင်းစပ်ရန်နှင့်အခြား ဆံပင်ကောက်ကောက်ကို ပေါင်းစပ်ရန်နှင့်အခြားဆံပင်ကောက်ကောက်များကိုပေါင်းစပ်ရန်နှင့်အခြားဆံပင်ကောက်ကောက်ကိုပေါင်းစပ်ရန်။

curl_pause () ?

curl_pause () သည် 0 င်ရောက်ခြင်း (သို့) ပြန်လည်ပေးပို့ခြင်း (သို့) ပေးပို့ခြင်း (ရေးရန်) (ရေးရန်) (ရေးရန်) (ရေးရန်) (MRAND) ကိုပြန်လည်ပေးပို့နိုင်သည့်ကူးစက်ခြင်းသို့မဟုတ်ပြန်လည်ပေးပို့နိုင်သည့်ကူးစက်ခြင်းလုပ်ငန်းလည်ပတ်မှုများကိုထိန်းချုပ်ရန် Libcurl မှပေးသော function တစ်ခုဖြစ်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။

PHP တွင်ဤလုပ်ဆောင်မှု၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">curl_pause</span></span><span>(CurlHandle </span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$bitmask</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>

$ bitmask parameter သည်အောက်ပါအရေအတွက်ကိုပေါင်းစပ်နိုင်သည်။

  • curlpausausa_recv : အချက်အလက်များကို reception ည့်ခံမှုကိုခေတ္တရပ်ပါ

  • curlpousausause_send : ဒေတာကိုပို့ခြင်း

  • curlpiusalausause_all : Sending နှင့်လက်ခံခြင်း

  • curlplouse_cont : ဆက်လက်ထုတ်လွှင့်ခြင်း (ခေတ္တရပ်တန့်)

Return Value သည်အမျိုးအစား curlcode ၏ status code code တစ်ခုဖြစ်သည်။ များသောအားဖြင့် 0 သည်အောင်မြင်မှုကိုဖော်ပြသည်။

ပုံမှန်အသုံးပြုမှုအခြေအနေများ

1 ။ Download လုပ်ငန်းတာဝန်များကိုအချိန်မှန်ထိန်းချုပ်မှု

bandwidth, user operations or server respons ်ဌာန်းချက်များကို အခြေခံ. ဒေါင်းလုပ်လုပ်ခြင်းကိုသင် dynamure downomature လုပ်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့် bandwidth တင်းကျပ်သောအခါ download လုပ်ခြင်းလုပ်ငန်းကိုခေတ္တဆိုင်းငံ့ထားခြင်းနှင့်နောက်ပိုင်းတွင်ပြန်လည်စတင်နိုင်သည်။

 <span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>(</span><span><span class="hljs-string">"https://example.com/largefile.zip"</span></span><span>);
</span><span><span class="hljs-variable">$fp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"largefile.zip"</span></span><span>, </span><span><span class="hljs-string">"w"</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_FILE, </span><span><span class="hljs-variable">$fp</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_WRITEFUNCTION, function(</span><span><span class="hljs-variable">$ch</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>) </span><span><span class="hljs-keyword">use</span></span><span> (&amp;$</span><span><span class="hljs-title">paused</span></span><span>) {
    </span><span><span class="hljs-title">static</span></span><span> $</span><span><span class="hljs-title">total</span></span><span> = 0;
    </span><span><span class="hljs-variable">$len</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
    </span><span><span class="hljs-variable">$total</span></span><span> += </span><span><span class="hljs-variable">$len</span></span><span>;

    </span><span><span class="hljs-comment">// အာရုံဖော်ခြင်း:ဒေါင်းလုပ်လုပ်ပါ1MBခဏရပ်ရုံ</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$total</span></span><span> &gt;= </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span> &amp;&amp; !</span><span><span class="hljs-variable">$paused</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">curl_pause</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLPAUSE_RECV);
        </span><span><span class="hljs-variable">$paused</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
    }

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$len</span></span><span>;
});

</span><span><span class="hljs-title function_ invoke__">curl_exec</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);

</span><span><span class="hljs-comment">// နောက်မှပြန်လည်ကောင်းမွန်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$paused</span></span><span>) {
    </span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">5</span></span><span>); </span><span><span class="hljs-comment">// ကျနော်တို့စောင့်ဆိုင်းဆိုပါစို့5စက်ဏန့်</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">curl_pause</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLPAUSE_CONT);
    </span><span><span class="hljs-title function_ invoke__">curl_exec</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
}

</span><span><span class="hljs-title function_ invoke__">curl_close</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span></span>

2 ။ Multi-threaded curl_multi နှင့်အတူသုံးပါ

curl_pulti_exec () သည် တစ်ပြိုင်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်ရန် curl_multi_exec () ကို အသုံးပြုသည့်အခါ ပို. အရေးကြီးသည်။ အခြားတောင်းဆိုမှုများကိုထိခိုက်ခြင်းမရှိဘဲလက်ကိုင်ကိုတိကျစွာခေတ္တရပ်နားနိုင်သည်။

 <span><span><span class="hljs-variable">$mh</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_multi_init</span></span><span>();
</span><span><span class="hljs-variable">$chs</span></span><span> = [];

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$urls</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$url</span></span><span>) {
    </span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_RETURNTRANSFER, </span><span><span class="hljs-literal">true</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">curl_multi_add_handle</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$ch</span></span><span>);
    </span><span><span class="hljs-variable">$chs</span></span><span>[] = </span><span><span class="hljs-variable">$ch</span></span><span>;
}

</span><span><span class="hljs-comment">// အချို့သောအခြေအနေများအောက်တွင်တောင်းဆိုမှုကိုခေတ္တရပ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_pause</span></span><span>(</span><span><span class="hljs-variable">$chs</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], CURLPAUSE_RECV);

</span><span><span class="hljs-comment">// ပြန်လည်ထူထောင်တဲ့အခါ:</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_pause</span></span><span>(</span><span><span class="hljs-variable">$chs</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], CURLPAUSE_CONT);
</span></span>

မှတ်သားရန်အရာ

  • ဆာဗာများသို့မဟုတ်သယ်ယူပို့ဆောင်ရေးအားလုံးသည် Pause Recovery ကိုပံ့ပိုးမှုမရှိသေးပါ,

  • သင် curlopt_Returnturtransfer ကို သုံးပါက curl_exec () ကို အသုံးမပြုပါ။

  • ခေတ္တနားပြီးနောက်ဒေတာသည်ကြားခံတွင်ရှိနေဆဲဖြစ်သော်လည်း WritFunction Callback ကိုတစ်ကြိမ်ခေါ်ဆိုခံရသည့်အခါသင်မြင်တွေ့ရဆဲဖြစ်နိုင်သည်။

အကျဉ်းချုပ်

curl_pyause () PHP ကို HTTP Transmission Bechning အတွက်သင့်လျော်သော http protretch beeter အတွက်သင့်တော်သော php ကိုပံ့ပိုးပေးသည်။ အထူးသ ဖြင့် ဖိုင်ကူးယူခြင်း, မီဒီယာပြုပြင်ခြင်း,

၎င်းကိုအသုံးပြုသောအခါ transmission status ကိုပိုမိုကောင်းမွန်စွာစီမံရန် WriteFuntefunction Callback နှင့် Curl_multi ပတ်ဝန်းကျင်ကိုပေါင်းစပ်သင့်သည်။ ၎င်းကိုကျွမ်းကျင်သည်သင်၏ network transmission logic မကြုံစဖူးပြောင်းလွယ်ပြင်လွယ်နှင့်ထိန်းချုပ်မှုကိုပေးနိုင်သည်။