【问题标题】:Querystring character limit for PHP scripts run through command line?通过命令行运行的 PHP 脚本的查询字符串字符限制?
【发布时间】:2012-03-25 04:49:24
【问题描述】:

(背景故事:我的 PHP 脚本正在通过命令行(PHP 的“exec()”命令)执行另一个 PHP 脚本,因此目标脚本创建的 cURL 会话不会导致原始 PHP 脚本挂起。我在这样做是为了如果电子邮件提供商的服务器滞后,我可以发送交易电子邮件,而不会为我的用户带来缓慢的页面加载。)

我正在调用这样的 PHP 脚本:

exec("[php] [target script] [querystring]"),其中 [querystring] 是典型的 HTTP GET 查询字符串 (variable=value&variable2=value2)。我通过查询字符串将电子邮件数据传递给目标脚本的原因是我的 PHP 主机在 PHP.ini 中禁用了一个标志,该标志不允许 PHP 脚本检测通过命令行调用它们的 $argv。 (无论出于何种原因,附加一个查询字符串仍然有效。)

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

【问题讨论】:

  • 自己测试很简单;-)

标签: php command-line exec query-string


【解决方案1】:

我不认为有任何字符限制,如果是的话,它可能是由您使用的操作系统或在这种情况下会翻译到您的记忆中的语言决定的。

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

【讨论】:

    【解决方案2】:

    请注意,安装了 suhosin 补丁的 PHP 设置的默认限制为 获取参数 512 个字符。虽然不好的做法,大多数浏览器(包括 IE) 最多支持大约 2000 个字符的 URL,而 Apache 的默认值为 8000。添加 支持带suhosin的长参数,在php.ini中添加suhosin.get.max_value_length =

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 2018-08-21
      • 2014-07-10
      • 2021-09-20
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多