我遇到了一个问题,我需要在PHP中编写冗长的命令并执行它们。但是,当命令的长度超过8175个字符时,它将无法执行。有趣的是,如果我手动复制并粘贴相同的命令到终端,它运行没有任何问题。这里有一个基本的例子来说明这个问题:
$longCommand = "echo ".str_repeat("a",8171); // longCommand length = 8176 -> fails
exec($longCommand, $output);
print_r($output);
如果您将$longCommand字符串减少到8175个字符,它将成功执行。从PHP执行命令时,是否有字符限制?如果有,如何增加或绕过此限制?
1条答案
按热度按时间smdnsysy1#
刚刚发现这是Windows的官方记录限制:
可以在命令提示符下使用的字符串的最大长度为8191个字符。此限制适用于:命令行由其他进程继承的单个环境变量,如PATH变量所有环境变量扩展如果使用命令提示符运行批处理文件,则此限制也适用于批处理文件处理。
Source