Php exec 命令在 Windows 上不起作用,在命令行上起作用

发布于 2024-12-27 15:01:04 字数 270 浏览 0 评论 0原文

我试图通过 PHP 的 exec 函数执行以下命令:

D:\\pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\new.jpg  

它不会生成任何输出。但是,如果我直接将命令粘贴到命令行上,那么它就可以工作...

注意:直接在命令行上运行时需要一些时间才能完成。

I am trying to execute the following command via PHP's exec function:

D:\\pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\new.jpg  

It doesn't generate any output. But if I directly paste the command on the command line then it works...

Note: it takes a bit of time to complete when run directly on command line.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浅黛梨妆こ 2025-01-03 15:01:04

我建议在这里使用 shell_exec 而不是 exec 函数。 shell_exec 通过适当的 shell(WIndows / Unix 等)执行命令,并将完整的输出作为字符串返回给您。

I would suggest using shell_exec instead of exec function here. shell_exec executes command via appropriate shell (WIndows / Unix etc) and returns the complete output as a string to you.

貪欢 2025-01-03 15:01:04

如果您的命令是这样的:

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\input.jpg");

PHP 转义反斜杠,那么到达 shell 的命令是 ... D:\outputfile.pdf D:\input.jpg。您必须对反斜杠进行两次转义:一次用于 PHP,一次用于 shell。

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\\\outputfile.pdf D:\\\\input.jpg");

If your command is this:

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\outputfile.pdf D:\\input.jpg");

PHP escapes the backslashes, so the command that reaches the shell is ... D:\outputfile.pdf D:\input.jpg. You have to double-escape the backslashes: once for PHP and once for the shell.

exec("pstill -F a4 -2 -c -c -c -c -g -i -t -K -d 700 -a 4 -m XimgAsCMYK -m Xspot -m Xoverprint -o D:\\\\outputfile.pdf D:\\\\input.jpg");
清音悠歌 2025-01-03 15:01:04

对我来说,解决方案是

在终端窗口而不是服务中运行 apache。

请参阅此线程:
apache 服务 php exec 不工作

for me the solution was to

run apache in a terminal window instead of a service.

see this thread:
apache service php exec not working

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文