通过命令行运行的PHP脚本的Querystring字符限制


Querystring character limit for PHP scripts run through command line?

(Backstory:我的PHP脚本正在通过命令行执行另一个PHP脚本(PHP的"exec()"命令),这样目标脚本创建的cURL会话就不会导致原始PHP脚本挂起。我这样做是为了在电子邮件提供商的服务器滞后的情况下,在不缓慢加载页面的情况下为用户发送事务性电子邮件。)

我调用的PHP脚本如下:

exec("[php][target script][querystring]"),其中[querystring'是典型的HTTP GET查询字符串(variable=value&variable2=value2)。我通过querystring将电子邮件数据传递给目标脚本的原因是,我的PHP主机在PHP.ini中禁用了一个标志,该标志禁止PHP脚本检测到它们通过命令行调用的$argv。(不管出于什么原因,添加查询字符串都可以。)

所以,问题是:这个查询字符串的字符限制是多少?会有吗?混合中没有HTTP或web浏览器——这是否意味着Apache和浏览器的GET字符限制不会成为限制?当然,会有命令行约束吗?

我不认为有任何字符限制,如果有,可能是由您使用的操作系统或在这种情况下转换到内存的语言决定的。

我希望这能回答你的问题。

请注意,安装了suhosin补丁的PHP设置的默认限制为512个字符用于获取参数。尽管这是一种糟糕的做法,但大多数浏览器(包括IE)支持最多2000个字符的URL,而Apache的默认值为8000。添加使用suhosin支持长参数,在php.ini中添加suhosin.get.max_value_length=