Вопрос об использовании функции proc_open()

jack2jack

Guest
Вопрос об использовании функции proc_open()

Мне нужно запустить консольное приложение в определенной директории, отличной от директории скрипта. Для этого я взял из хелпа пример использования функции proc_open() - поскольку необходимо использовать как stdin, так и stdout - и немного его изменил.
PHP:
$descriptorspec = array(
	0 => array("pipe", "r"),
	1 => array("pipe", "w"),
	2 => array("file", "err.txt", "a"),
);
$process = proc_open("F:\\WINDOWS\\system32\\cmd.exe", $descriptorspec, $pipes);
if (is_resource($process)) {
	fwrite($pipes[0], "dir\n");
	fclose($pipes[0]);
	
	while(!feof($pipes[1])) {
		echo $s = fgets($pipes[1], 1024);
	}
	fclose($pipes[1]);
		
	$return_value = proc_close($process);
}
Программа запускается только в директории скрипта (например, mydir/myscript.php), даже если вначале стоит chdir("c:/mydir2").

Вопрос: Что нужно сделать, чтобы изменить директорию запуска?

-~{}~ 04.03.05 15:43:

Вопрос все еще открыт

-~{}~ 09.03.05 16:35:

Черт... cтарый мануал.

В текущем http://www.php.net/proc_open указан параметр

cwd

The initial working dir for the command. This must be an absolute directory path, or NULL if you want to use the default value (the working dir of the current PHP process)

-~{}~ 09.03.05 17:53:

правда, только для PHP5...
 
Сверху