物理内存警告

Physical memory warning

<?php
file_put_contents("10gb.zip", fopen("http://website.website/10GB.zip", 'r'));
echo "File Downloaded!";

我正在使用此代码将文件从 url 下载到我的服务器。但是当我 运行 我的代码时 我的 hosing 服务器内存变成红色! -_- 我的下载卡在 3.79 GB。
下载大文件有限制吗?我想用 5 个进程下载超过 50 GB 的文件!可能吗?

我会在处理大文件时选择流式传输而不是直接复制它们

来自此处提供的示例:http://php.net/manual/en/function.stream-copy-to-stream.php

你可以试试:

<?php   
    function pipe_streams($in, $out)
    {
        while (!feof($in))
            fwrite($out,fread($in,8192));
    }

    pipe_streams("http://website.website/10GB.zip", "10gb.zip");
?>

或使用 curl (http://php.net/manual/en/book.curl.php) :

<?php
    $url  = "http://website.website/10GB.zip";
    $path = "10gb.zip";

    $fp = fopen($path, 'w');

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FILE, $fp);

    $data = curl_exec($ch);

    curl_close($ch);
    fclose($fp);
?>

检查此 https://www.sitepoint.com/performant-reading-big-files-php/ 以获得更多流媒体选项