Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP头:位置时下载速度慢_Php_Apache - Fatal编程技术网

使用PHP头:位置时下载速度慢

使用PHP头:位置时下载速度慢,php,apache,Php,Apache,有两台服务器 应用服务器(Apache) 文件服务器 我测试了Server1和Server2之间的下载速度,大约为10 MBPS 我在Server1上通过从internet下载一些文件来测试下载速度,获得了25Mbps的速度 我将文件直接从Server2下载到我的计算机上,速度大约为10 MBPS 但是当我从PHP脚本重定向下载时,下载速度不超过500kbps 这是我的密码: $xml_content = file_get_contents(array_get_by_index($rp, $

有两台服务器

  • 应用服务器(Apache)
  • 文件服务器
  • 我测试了Server1和Server2之间的下载速度,大约为10 MBPS

    我在Server1上通过从internet下载一些文件来测试下载速度,获得了25Mbps的速度

    我将文件直接从Server2下载到我的计算机上,速度大约为10 MBPS

    但是当我从PHP脚本重定向下载时,下载速度不超过500kbps

    这是我的密码:

      $xml_content = file_get_contents(array_get_by_index($rp, $stack));
            $name        = basename(array_get_by_index($rp, $stack));
            header("Content-type: application/xml");
            header('Content-disposition: inline; filename= ' . $name);
            header('Pragma: no-cache');
            header('Expires: 0');
            header('Cache-Control: no-cache, no-store');
            header("Content-Transfer-Encoding: binary");
            header("Connection: keep-alive");
            echo $xml_content;
            flush();
            ob_flush();
    

    “header:location”与什么有什么关系…?为什么在使用PHP时下载速度较慢有很多原因:1)将文件读入内存,然后将其回显到web服务器,然后由web服务器输出。这里可能有很多交换和缓冲。2) 你到底是如何测量速度的?由于PHP首先缓冲文件,因此可能该时间延迟会直接影响平均速度计算。3) 是的,这两种方式都是低效的。您应该让您的web服务器以某种方式为文件提供服务,而不是让PHP专注于此。如何做到这一点完全取决于这里的细节。我的意思是,当使用这种方法下载文件时,速度会降低。我不知道它是否会影响文件下载速度。在发送之前,您正在将整个文件读入内存。这永远不会像读取和发送小数据块那样快,这可能是任何理智的web服务器所做的。