php popen и php текущий рабочий каталог
Если я использую команду PHP popen для выполнения скрипта, выполняет ли она его в контексте текущей директории PHP?
В настоящее время я делаю что-то вроде
popen(' cd PATH; CMD');
но могу ли я сделать это как
chdir ('PATH');
popen('CMD');
2 ответа
Решение
Это зависит от контекста, в котором он выполняется.
Когда я использую popen() из командной строки, он запускается в том WD, с которого я его запускал.
[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
Да, это так. Я только что проверил это на Windows 7 с Apache PHP/5.3.2.