我想大的变量传递给一个PHP脚本另一台服务器上以http像: “example.com/get.php?data=this是很很多的数据...”通过php和http传递大的变量?
我总是得到服务器( apache)response:“Request-URI Too Large”
任何想法都会将大变量传递给该脚本?
我想大的变量传递给一个PHP脚本另一台服务器上以http像: “example.com/get.php?data=this是很很多的数据...”通过php和http传递大的变量?
我总是得到服务器( apache)response:“Request-URI Too Large”
任何想法都会将大变量传递给该脚本?
如果GET的数据太长,那么使用POST怎么办?
(考虑对POST大小的限制,一般在PHP以防万一2 MB;取决于配置,可以更)
如果您正在使用curl(即如果它是一个PHP脚本你的服务器,请求到另一台服务器;否则,你可能会使用HTML格式的表格),看一下curl_setopt
的te文档:有些选项会明确地关注你;-)
如前所述,你应该切换到POST。
POST的初始最大大小约为2mb,可以通过在php.ini文件中设置upload_max_filesize和post_max_size进行配置。
最好的选择是$ _POST。如果变量较大,甚至可以使用AJAX添加“加载图标”。
尝试使用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的大小。
绝对使用POST。
顺便说一句,这个链接文件最大URL长度:
http://www.boutell.com/newfaq/misc/urllength.html
如果你可以对另一台服务器上的PHP脚本的源代码进行任何控制,它应该是POST数据而不是GET。但是,如果您有非常有效/实际的理由使用GET而不是发布。然后,您需要进行折衷并牺牲发送非常大的数据以保持使用GET方法的能力。
正如Joeri指出的那样,URL的长度有上限,并且此限制可能因浏览器到浏览器和服务器而异。不同版本或同一浏览器/服务器也可能支持不同的URL最大长度。因此,通过GET请求可以在URL中发送的数据量有限制。
您是否考虑过使用POST方法? – notnoop 2009-07-19 15:39:32