Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP shell_exec目录_Php_Exec_Executable_Shell Exec_Subdirectory - Fatal编程技术网

PHP shell_exec目录

PHP shell_exec目录,php,exec,executable,shell-exec,subdirectory,Php,Exec,Executable,Shell Exec,Subdirectory,我在PHP中使用shell_exec,如果我在同一文件夹中使用可执行文件,它就可以工作,但如果我将可执行文件指向子文件夹,它就不再工作了 我有这个(有效的): 我想要这个(不起作用-它只是跳过执行): 哦,路径处于Windows模式 谢谢你们的帮助。尝试使用exec()和完整路径,而不是相对路径 $oldcwd = getcwd(); chdir($oldcwd+"/screens"); exec("makescreen.exe /url=".$link.""); chdir($old

我在PHP中使用shell_exec,如果我在同一文件夹中使用可执行文件,它就可以工作,但如果我将可执行文件指向子文件夹,它就不再工作了

我有这个(有效的):

我想要这个(不起作用-它只是跳过执行):

哦,路径处于Windows模式

谢谢你们的帮助。

尝试使用exec()和完整路径,而不是相对路径

 $oldcwd = getcwd();
 chdir($oldcwd+"/screens");
 exec("makescreen.exe /url=".$link."");
  chdir($oldcwd); 
尝试将exec()与完整路径而不是相对路径一起使用

 $oldcwd = getcwd();
 chdir($oldcwd+"/screens");
 exec("makescreen.exe /url=".$link."");
  chdir($oldcwd); 

注意绝对路径的差异。相对路径。执行路径。例如,您的目录结构是:

/home/my/php/script/test.php 
                   /makescreen.exe
在php脚本中调用
shell\u exec(makescreen.exe***)

在本例中,如果执行脚本,如
cd/home/my/php/script&&php test.php
,那么执行路径是
/home/my/php/script/
,scirpt将在执行路径中找到
makescreen.exe
,这里是
/home/my/php/script/

但是,如果您当前停留在
/home/my
中并以这种方式使用
php/home/my/php/script/test.php
,那么执行路径就是您的当前路径,这里是
/home/my
,脚本将在
/home/my
中找到
makescreen.exe
,肯定失败

如果在脚本中使用
/home/my/php/script/makescreen.exe
,这是绝对路径,无论您身在何处,它都会在
/home/my/php/script/
中找到
makescreen.exe


如果要将可执行文件放入子文件夹中。您可以在脚本中使用相对路径
子文件夹/makescreen.exe
,并确保脚本可以正确访问它

注意绝对路径的差异。相对路径。执行路径。例如,您的目录结构是:

/home/my/php/script/test.php 
                   /makescreen.exe
在php脚本中调用
shell\u exec(makescreen.exe***)

在本例中,如果执行脚本,如
cd/home/my/php/script&&php test.php
,那么执行路径是
/home/my/php/script/
,scirpt将在执行路径中找到
makescreen.exe
,这里是
/home/my/php/script/

但是,如果您当前停留在
/home/my
中并以这种方式使用
php/home/my/php/script/test.php
,那么执行路径就是您的当前路径,这里是
/home/my
,脚本将在
/home/my
中找到
makescreen.exe
,肯定失败

如果在脚本中使用
/home/my/php/script/makescreen.exe
,这是绝对路径,无论您身在何处,它都会在
/home/my/php/script/
中找到
makescreen.exe


如果要将可执行文件放入子文件夹中。您可以在脚本中使用相对路径
子文件夹/makescreen.exe
,并确保脚本可以正确访问它

谢谢,不过还是一样。这离服务器根目录已经有两层了,现在我想要另一个子文件夹——这和它有什么关系吗?我应该使用服务器根目录的绝对路径吗?谢谢,但还是一样。这离服务器根目录已经有两层了,现在我想要另一个子文件夹——这和它有什么关系吗?我应该使用来自服务器根目录的绝对路径吗?