2009-07-19 22 views
1

我想大的变量传递给一个PHP脚本另一台服务器上以http像: “example.com/get.php?data=this是很很多的数据...”通过php和http传递大的变量?

我总是得到服务器( apache)response:“Request-URI Too Large”

任何想法都会将大变量传递给该脚本?

+0

您是否考虑过使用POST方法? – notnoop 2009-07-19 15:39:32

回答

4

如果GET的数据太长,那么使用POST怎么办?

(考虑对POST大小的限制,一般在PHP以防万一2 MB;取决于配置,可以更)

如果您正在使用curl(即如果它是一个PHP脚本你的服务器,请求到另一台服务器;否则,你可能会使用HTML格式的表格),看一下curl_setopt的te文档:有些选项会明确地关注你;-)

0

如前所述,你应该切换到POST。

POST的初始最大大小约为2mb,可以通过在php.ini文件中设置upload_max_filesize和post_max_size进行配置。

0

最好的选择是$ _POST。如果变量较大,甚至可以使用AJAX添加“加载图标”。

1

尝试使用POST而不是GET?也就是说,这样的事情:

<form name=fooForm method=POST action=http://example.com/get.php> <input type="hidden" name=data value="this is quite a lot of data"> </form>

要么加入一个提交按钮或触发提交使用JavaScript有点像这样:

<a href="javascript:document.fooForm.submit()">Submit</a>

您还可以尝试通过cookie来传送数据,他们可以达到4KB的大小。

0

如果你可以对另一台服务器上的PHP脚本的源代码进行任何控制,它应该是POST数据而不是GET。但是,如果您有非常有效/实际的理由使用GET而不是发布。然后,您需要进行折衷并牺牲发送非常大的数据以保持使用GET方法的能力。

正如Joeri指出的那样,URL的长度有上限,并且此限制可能因浏览器到浏览器和服务器而异。不同版本或同一浏览器/服务器也可能支持不同的URL最大长度。因此,通过GET请求可以在URL中发送的数据量有限制。