Php 将数据直接从远程服务器流式传输到客户端的脚本

Php 将数据直接从远程服务器流式传输到客户端的脚本,php,stream,remote-server,Php,Stream,Remote Server,我希望在远程服务器和客户端之间创建直接连接,其中数据传输由PHP脚本控制。脚本将负责确定从远程服务器传输到客户端的数据块;我不希望数据通过托管PHP脚本的服务器传输 本质上,我试图将数据从远程服务器流式传输到客户端,在客户端传输的数据块由PHP脚本控制 我查看了PHP的流函数(),但这似乎并没有提供解决方案 PHP是否提供了从远程文件中选择特定字节范围的函数,并将其直接传输到客户端?您的问题没有完全指定,但我假设您有一个典型的PHP部署,即您希望客户端向您的服务器发出http请求,您有一个根据上

我希望在远程服务器和客户端之间创建直接连接,其中数据传输由PHP脚本控制。脚本将负责确定从远程服务器传输到客户端的数据块;我不希望数据通过托管PHP脚本的服务器传输

本质上,我试图将数据从远程服务器流式传输到客户端,在客户端传输的数据块由PHP脚本控制

我查看了PHP的流函数(),但这似乎并没有提供解决方案


PHP是否提供了从远程文件中选择特定字节范围的函数,并将其直接传输到客户端?

您的问题没有完全指定,但我假设您有一个典型的PHP部署,即您希望客户端向您的服务器发出http请求,您有一个根据上述请求解释php代码的服务器,还有一个“远程服务器”,您希望向其发出http请求,并让客户端接收该响应。当您说“直接从远程服务器传输数据”时,听起来好像您希望客户机直接连接到远程服务器并用PHP控制该连接,严格地说,这是不可能的,但是有一些方法可以粗略地解释您所说的是可能的

如果您愿意放宽“由PHP脚本控制的要求”

您可以通过从php脚本发送将在客户端上运行的javascript,使客户端创建到远程服务器的直接连接,客户端将创建直接连接。在这种情况下,如果远程服务器支持,您可以使用http内容范围来请求特定的字节范围。例如。
xhr.setRequestHeader('content-range','bytes 0-1233/1234')
见:


在这个场景中,您不能用php控制内容范围。您正在使用PHP发送请求内容范围的javascript。

如上所述,这无法完成。您甚至无法下载这些字节,然后将它们从主机发送到客户端?@Michael我不想受托管PHP脚本的服务器带宽率的限制。这称为爬行。我以为它是在试图让您的把它做成蛋糕吃下去。如果你想成为一个代理,你必须处理数据我猜你想发送一个完整的文件,而不仅仅是一个块。通过发送多个xhr头,程序集将如何进行?我猜JavaScript将负责在浏览器中协调这一点,然后将其组装到一个文件中,然后再让用户拥有它?我举了一个请求块的例子,因为他问“PHP是否提供了一个函数来从远程文件中选择特定范围的字节,并将其直接传输到客户端?”使用content-range是我知道的让客户端请求特定字节范围的唯一方法。是的,我知道了,我正在考虑如何进行组装。回答得很好,我不知道内容范围。你知道服务器是否广泛支持它吗?(Apache,Nginx)