簡體   English   中英

PHP Curl Writefunction中的if語句

[英]If statements inside PHP Curl Writefunction

在這里的功能中,當文件下載超過某些里程碑時,我試圖執行功能。 因此,在這種情況下,我想下載10mb,然后回顯里程碑,然后再次重復到下一個10mb。

我正在下載的文件約為300mb,因此我希望該函數被調用30次。

里程碑需要是什么? 字節? 千字節? 不管是什么,如果我超過10000,它將不再調用if中的任何內容。

curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch, $chunk) {
$chunksize = strlen($chunk);
$downloaded .= $chunksize;
if($downloaded > $milestone){
    echo "milestone";
    $downloaded = 0;
}
return $chunksize;
});

只是要猜測真正的問題是變量$downloaded$milestone不在此函數范圍內和/或每次執行該函數時都會被重置。 您可能需要使$downloaded變為static並在周圍的作用域中包含$milestone

$milestone = /* something */;

curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $chunk) use ($milestone) {
    static $downloaded = 0;

    $chunksize = strlen($chunk);
    $downloaded .= $chunksize;
    if ($downloaded > $milestone){
        echo "milestone";
        $downloaded = 0;
    }
    return $chunksize;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM