我在 PHP 中使用 shell_exec,如果我在同一文件夹中使用可执行文件,它可以工作,但如果我在子文件夹中指向可执行文件,则不再工作。
我有这个(有效):
shell_exec ("makescreen.exe /url=".$link."");
我想要这个(不起作用 - 它只是跳过执行):
shell_exec ("/screens/makescreen.exe /url=".$link."");
哦,路径处于 Windows 模式。
谢谢你们的帮助。
我在 PHP 中使用 shell_exec,如果我在同一文件夹中使用可执行文件,它可以工作,但如果我在子文件夹中指向可执行文件,则不再工作。
我有这个(有效):
shell_exec ("makescreen.exe /url=".$link."");
我想要这个(不起作用 - 它只是跳过执行):
shell_exec ("/screens/makescreen.exe /url=".$link."");
哦,路径处于 Windows 模式。
谢谢你们的帮助。
尝试使用带有完整路径而不是相对路径的 exec ()
$oldcwd = getcwd();
chdir($oldcwd+"/screens");
exec("makescreen.exe /url=".$link."");
chdir($oldcwd);
注意绝对路径的差异。相对路径。执行路径。例如,您的目录结构是:
/home/my/php/script/test.php
/makescreen.exe
在你调用的 php 脚本中shell_exec(makescreen.exe ***)
。
在这种情况下,如果你像这样执行你的脚本cd /home/my/php/script && php test.php
,那么执行路径是/home/my/php/script/
并且脚本会makescreen.exe
在执行路径中找到,这里是/home/my/php/script/
但是,如果您当前留在/home/my
并使用这种方式php /home/my/php/script/test.php
,那么执行路径就是您当前的路径,这里是/home/my
,并且脚本会找到makescreen.exe
in /home/my
,肯定会失败。
如果您/home/my/php/script/makescreen.exe
在脚本中使用,这是绝对路径,无论您身在何处,它都会makescreen.exe
在/home/my/php/script/
如果你想把可执行文件放在子文件夹中。您可以在脚本中使用相对路径subfolder/makescreen.exe
并确保脚本可以正确访问它。