[ 'method' => 'GET', 'header' => 'User-Agent: '.menv('USER_AGENT', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36') ]]); if ($fp = fopen($url, 'rb', false, $context)) { if (! $download_fp = fopen($path, 'wb')) { return false; } while (! feof($fp)) { if (! file_exists($path)) { // Cancel downloading if destination is no longer available fclose($download_fp); return false; } Log::info('[File Downloader] 1024 bytes wrote'); fwrite($download_fp, fread($fp, 1024 * 8 ), 1024 * 8); } fclose($download_fp); fclose($fp); Log::info("[File Downloader] Finished downloading, data stored to: $path"); Log::info("[File Downloader] ==========================================="); return true; } else { return false; } } public static function getRemoteFileSize($url) { $regex = '/^Content-Length: *+\K\d++$/im'; if (! $fp = @fopen($url, 'rb')) { return false; } if ( isset($http_response_header) && preg_match($regex, implode("\n", $http_response_header), $matches) ) { return (int)$matches[0]; } return strlen(stream_get_contents($fp)); } /** * Get date time string in "Y-m-d H:i:s" format. * * @deprecated Use the helper function instead. * @param integer $timestamp * @return string */ public static function getTimeFormatted($timestamp = 0) { return get_datetime_string($timestamp); } /** * Replace content of string according to given rules. * * @deprecated Use the helper function instead. * @param string $str * @param array $rules * @return string */ public static function getStringReplaced($str, $rules) { return get_string_replaced($str, $rules); } }