(PHP 4 >= 4.3.0, PHP 5, PHP 7)
proc_open — ִ��һ��������Ҵ���������/������ļ�ָ�롣
$cmd
, array $descriptorspec
, array &$pipes
[, string $cwd
[, array $env
[, array $other_options
]]] ) : resource���� popen() ������ ���� proc_open() �ṩ�˸���ǿ��Ŀ��Ƴ���ִ�е�������
cmd
Ҫִ�е�����
descriptorspec
һ���������顣 ����ļ���ʾ������������Ԫ��ֵ��ʾ PHP ��ν���Щ�������������ӽ��̡� 0 ��ʾ�����루stdin����1 ��ʾ�������stdout����2 ��ʾ������stderr����
�����е�Ԫ�ؿ����ǣ�
STDIN
����
�ļ���������ֵ������ 0��1 �� 2�������ʹ���κ���Ч���ļ������� �����䴫�����ӽ��̡� ��ʹ����Ľű����Ժ������ű����������� ���磬����ͨ��ָ���ļ��������������Ը��Ӱ�ȫ�ķ�ʽ ���������� PGP��GPG �� openssl ���� ͬʱҲ���Ժܷ���Ļ�ȡ��Щ�����״̬��Ϣ��
pipes
������Ϊ�������飬 ���е�Ԫ���DZ�ִ�г����Ĺܵ���Ӧ�� PHP ��һ�˵��ļ�ָ�롣
cwd
Ҫִ������ij�ʼ����Ŀ¼��
������ ���� ·����
���ô˲���Ϊ NULL
��ʾʹ��Ĭ��ֵ����ǰ PHP ���̵Ĺ���Ŀ¼����
env
Ҫִ�е�������ʹ�õĻ���������
���ô˲���Ϊ NULL
��ʾʹ�ú͵�ǰ PHP ������ͬ�Ļ���������
other_options
�㻹����ָ��һЩ����ѡ� Ŀǰ֧�ֵ�ѡ�������
TRUE
��ʾ���Ʊ����������Ĵ���
TRUE
��ʾ�ƹ� cmd.exe shell��
���ر�ʾ���̵���Դ���ͣ�
��ʹ�����֮������� proc_close() �������رմ���Դ��
���ʧ�ܣ����� FALSE
��
�汾 | ˵�� |
---|---|
5.2.1 |
Ϊ other_options �������� bypass_shell ѡ�
|
Example #1 proc_open() ����
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // �����룬�ӽ��̴Ӵ˹ܵ��ж�ȡ����
1 => array("pipe", "w"), // ��������ӽ�����˹ܵ���д������
2 => array("file", "/tmp/error-output.txt", "a") // ������д�뵽һ���ļ�
);
$cwd = '/tmp';
$env = array('some_option' => 'aeiou');
$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
// $pipes ���ڿ������������ģ�
// 0 => �������ӽ��̱�����д��ľ��
// 1 => ���Դ��ӽ��̱������ȡ�ľ��
// ������������ӵ��ļ� /tmp/error-output.txt
fwrite($pipes[0], '<?php print_r($_ENV); ?>');
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// �мǣ��ڵ��� proc_close ֮ǰ�ر����еĹܵ��Ա���������
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
?>
�������̵���������ڣ�
Array ( [some_option] => aeiou [PWD] => /tmp [SHLVL] => 1 [_] => /usr/local/bin/php ) command returned 0
Note:
Windows �����ԣ����� 2 ��������Ҳ������Ϊ�ɼ̳еľ�����͵��ӽ��̡� ���ǣ����� Windows �ļܹ��������ļ��������͵ײ������й����� ���ԣ��ӽ��������������ľ���� �����룬������ͱ�ע����ᰴ��Ԥ�ڹ�����
Note:
�����ֻ��Ҫ����Ľ��̹ܵ��� ʹ�� popen() ��������Ӽ�