在PHP中传递给exec的命令长度是否有限制?
目前我需要将50多个PDF文件合并为1个PDF。我正在使用PDFTK。使用以下指南: 但它不起作用。我已核实以下情况:在PHP中传递给exec的命令长度是否有限制?,php,pdftk,Php,Pdftk,目前我需要将50多个PDF文件合并为1个PDF。我正在使用PDFTK。使用以下指南: 但它不起作用。我已核实以下情况: 我已经尝试了从我的PHP中合并2个PDF的命令,它正在工作 我已经回显了最后一个命令,并复制了该命令,粘贴到命令提示符中并手动运行,所有50个PDF都成功合并 因此,我的PHP中的exec和合并50个PDF的命令都是正确的,但在PHP中一起执行时,它不起作用。我还说明了设置时间限制(0),以防止任何超时,但仍然无法工作 知道怎么了吗 提前感谢。我不确定一个命令的长度是否有限制,
提前感谢。我不确定一个命令的长度是否有限制,但我非常确定您可以使用“\”将其拆分为多行,以检查这是否是问题所在。再说一次,我不认为是。。。当您尝试使用PHP和exec运行full命令时,是否有任何错误输出,也请尝试system()而不是exec()。您可以尝试了解:
print exec(str_repeat(' ', 5000) . 'whoami');
我认为它是8192,至少在我的系统上是这样,因为它在大于10K的字符串中失败,但在小于7K的字符串中仍然有效。1.45之前的PDFTK版本仅限于合并26个文件,因为它使用“句柄” 正如您可以看到的,“A”和“B”是“句柄”,但应该是一个大写字母,因此只能使用A-Z,如果达到该限制,可能您的脚本会输出如下错误
Error: Handle can only be a single, upper-case letter
但是在1.45中,这个限制被删除了,changelog extract
现在可以使用多字符输入句柄。以前的版本是
仅限于一个字符,对
使用句柄时的输入PDF数。句柄仍然必须是全部
大写ASCII码
也许你只需要更新你的库;) 我已尝试使用system(),没有差异,并且得到错误输出1。0表示成功,知道是什么导致1吗?阅读exec上的文档,它会说:“在Windows下使用批处理文件,有1024个字符的行长度限制。因此,我确保批处理文件中的每一行不超过1024个字符。”我不知道您是否在使用Windows。同时阅读你发布的链接,上面写着使用passthru()而不是system和exec?是的,我在Windows下使用,我已经尝试了passthru、system和exec这三种。但不确定1024个字符的部分。我会发现并尝试的。
Error: Handle can only be a single, upper-case letter