1

If I use PHP's popen command to execute a script, does is execute it in the context of PHP's current directory?

Currently I am doing something along the lines of

popen(' cd PATH; CMD');

but can I do it as

chdir ('PATH');
popen('CMD');
Alex Turpin
  • 46,743
  • 23
  • 113
  • 145
Eric Pigeon
  • 1,091
  • 2
  • 10
  • 21

2 Answers2

2

It depends on the context in which it's run.

When I use popen() from the command line, it runs in the WD that I ran it from.

[ghoti@pc ~]$ php -r '$h=popen("pwd","r"); print fread($h, 80);'
/home/ghoti
[ghoti@pc ~]$ php -r 'chdir("/tmp"); $h=popen("pwd","r"); print fread($h, 80);'
/tmp
ghoti
  • 45,319
  • 8
  • 65
  • 104
1

Yes, it does. I just tested it on Windows 7 with Apache PHP/5.3.2.

Alex Turpin
  • 46,743
  • 23
  • 113
  • 145