ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


proc open
8³â Àü
(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_open — ¸í·ÉÀ» ½ÇÇàÇÏ°í, ÀÔÃâ·Â¿ëÀ¸·Î ÆÄÀÏ Æ÷ÀÎÅ͸¦ ¿­

¼³¸í
resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )
proc_open() À̶ópopen() °í Àß ´à¾ÒÁö¸¸ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ´õ °¡´Ã°Ô Á¦¾îÇÒ ¼ö ÀÖ´Â Á¡¿¡¼­ ´Ù¸¨´Ï´Ù.

ÆĶó¹ÌÅÍ
cmd
½ÇÇàµÇ´Â ¸í·É.

descriptorspec
¼öÄ¡ ÷ÀÚ ¹è¿­·Î, µð½ºÅ© ¸®ÇÁ ´ÙÀ½ ¹øÈ£¸¦ Å°´Ù¸ç PHP°¡ ±× µð½ºÅ© ¸®ÇÁ Á¤º¸¸¦ ¾î¶»°Ô ÀÚ½Ä ÇÁ·Î¼¼½º¿¡ Àü´ÞÇÏ´ÂÁö¸¦ ³ªÅ¸³»´Â °ÍÀÌ ´ëÀÀÇÏ´Â °ªÀÔ´Ï´Ù. 0ÀÌ Ç¥ÁØ ÀÔ·Â(stdin), 1ÀÌ Ç¥ÁØ Ãâ·Â(stdout)À̸ç, 2ÀÌ Ç¥ÁØ ¿À·ù Ãâ·Â(stderr)ÀÔ´Ï´Ù.

°¢ ¿ä¼Ò´Â ´ÙÀ½°ú °°½À´Ï´Ù.

ÇÁ·Î¼¼½º¿¡ Àü´Þ ä³ÎÀ» ³ªÅ¸³»´Â ¹è¿­. ù¹ø° ¿ä¼Ò´Â µð½ºÅ© ¸®ÇÁ ŸÀÇ ÇüÅ·Î, 2¹ø° ¿ä¼Ò°¡ ±× Ʋ¿¡ ¸Â´Â ¿É¼ÇÀÔ´Ï´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ÇüÀºpipe (2¹ø° ¿ä¼Ò´Â ÇÁ·Î¼¼½º¿¡ ÆÄÀÌÇÁÀÇ Àбâ ÃøÀ» °Ç³Ù´Ù¸ér ±Û ÂÊÀ» °Ç³Ù´Ù¸éw) ¹×file (2¹ø° ¿ä¼Ò´Â ÆÄÀϸí) ÀÔ´Ï´Ù.
½ÇÁ¦ ÆÄÀÏ µð½ºÅ© ¸®ÇÁ ´Ù(¿ÀÇÂÇÑ ÆÄÀÏÀ̳ª ¼ÒÄÏ, STDIN µî)À» ³ªÅ¸³»´Â ½ºÆ®¸² ÀÚ¿ø.
ÆÄÀÏ µð½ºÅ© ¸®ÇÁ ŸÀÇ ¹øÈ£´Â ƯÈ÷ 0, 1, 2¿¡ ±¹ÇÑµÈ °Í¿¡¼­´Â ¾ø½À´Ï´Ù. À¯È¿ÇÏ´Ù ¾î¶°ÇÑ ÆÄÀÏ µð½ºÅ© ¸®ÇÁ ŸÀÇ ¹øÈ£µµ ÁöÁ¤ÇÒ ¼ö ÀÖ°í, ±×°ÍÀº ÀÚ½Ä ÇÁ·Î¼¼½º¿¡ Àü´ÞµË´Ï´Ù. À̷νá ÇÑ ½ºÅ©¸³Æ®¿Í, ÀÚ½Ä ÇÁ·Î¼¼½º·Î¼­ ½ÇÇàÇÏ°í ÀÖ´Â ¶Ç ´Ù¸¥ ½ºÅ©¸³Æ®¿Í »çÀÌ¿¡¼­ Åë½ÅÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ÀÌ´Â PGP³ª GPG, opensslµîÀÇ ÇÁ·Î±×·¥¿¡ Æнº ÇÁ·¹ÀÌÁ º¸´Ù ¾ÈÀüÇÑ ¹æ¹ýÀ¸·Î ÁÖ°í ½ÍÀ» ¶§ À§·ÂÀ» ¹ßÈÖÇÕ´Ï´Ù. º¸Á¶ÀûÀÎ ÆÄÀÏ µð½ºÅ© ¸®ÇÁ Á¤º¸¸¦ ÅëÇؼ­ ±×·± ÇÁ·Î±×·¥ »óŸ¦ ÃëµæÇÏ´Â µ¥µµ Æí¸®ÇÕ´Ï´Ù.

pipes
PHPÃø¿¡¼­ »ý¼ºµÈ ÆÄÀÌÇÁÀÇ ³¡¿¡ ÇØ´çÇÏ´Â ÆÄÀÏ Æ÷ÀÎÅÍÀÇ ¹è¿­.

cwd
¸í·ÉÀÇ Ãʱâ ÀÛ¾÷ µð·ºÅ丮. ¿ÏÀü ÆнºÀÎ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ±âº» °ª(ÇöÀçÀÇ PHPÇÁ·Î¼¼½ºÀÇ ÀÛ¾÷ µð·ºÅ丮)¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é NULL ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

env
½ÇÇàÇÏ´Â ¸í·ÉÀ» À§ÇÑ È¯°æ º¯¼öÀÇ ¹è¿­. ÇöÀçÀÇ PHPÇÁ·Î¼¼½º¿Í °°Àº ȯ°æ º¯¼ö¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â NULL ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

other_options
±âŸ Ãß°¡ ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç Áö¿øµÇ°í ÀÖ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°½À´Ï´Ù.

suppress_errors (windows¸¸): TRUE ·Î Çϸé ÀÌ ÇÔ¼ö°¡ Ãâ·ÂÇÏ´Â ¿¡·¯¸¦ ¾ïÁ¦ÇÕ´Ï´Ù.
bypass_shell (windows¸¸): TRUE ·Î Çϸé,cmd.exe ²®ÁúÀ» ¿ìȸÇÕ´Ï´Ù.
¹Ýȯ °ª
ÇÁ·Î¼¼½º¸¦ ³ªÅ¸³»´Â ¸®¼Ò½º¸¦ °±°Ú½À´Ï´Ù. ÀÌ ¸®¼Ò½º´Â, »ç¿ëÀÌ Á¾·áµÈ ¶§ proc_close() ¸¦ »ç¿ëÇÏ°í °³¹æÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ½ÇÆÐÇßÀ» °æ¿ìFALSE ¸¦ °±°Ú½À´Ï´Ù.

º¯°æ ÀÌ·Â
¹öÀü        ¼³¸í
5.2.1        other_options ÆĶó¹ÌÅÍ¿¡ ¿É¼ÇÀÌbypass_shell Ãß°¡µÇ¾ú½À´Ï´Ù.
¿¹
»ç·Ê 1 Aproc_open() ÀÇ ¿¹

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin Àº ÀÚ½Ä ÇÁ·Î¼¼½º°¡ Àбâ ÆÄÀÌÇÁÀÔ´Ï´Ù.
   1 => array("pipe", "w"),  // stdout Àº ÀÚ½Ä ÇÁ·Î¼¼½º°¡ ¾²´Â ÆÄÀÌÇÁÀÔ´Ï´Ù.
   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 => ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ¼ö´Â nbsp;stdin ¿¡ ¿¬°áµÈ ±Û °¡´ÉÇÑ ÇÚµé
    // 1 => ÀÚ½Ä ÇÁ·Î¼¼½ºÀÇ ¼ö´Â nbsp;stdout ¿¡ ¿¬°áµÈ Àб⠰¡´ÉÇÑ ÇÚµé
    // ¸ðµç ¿¡·¯ Ãâ·ÂÀº nbsp;/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

ÁÖÀÇ:

WindowsÀÇ È£È¯¼º:2(stderr)º¸´Ù Å« ¹øÈ£ÀÇ µð½ºÅ© ¸®ÇÁ Ÿ´Â ÀÚ½Ä ÇÁ·Î¼¼½º¿¡ ½Â°è °¡´ÉÇÑ ÇÚµé·Î °Ç³Ê°¡Áö¸¸ WindowsÀÇ ¾ÆÅ°ÅØó´Â ÆÄÀÏ µð½ºÅ© ¸®ÇÁ ŸÀÇ ¹øÈ£¿Í ´õ ÀúÁú ÇÚµé°ú °ü·Ã ÁþÁö ¾Ê¾Æ ÀÚ½Ä ÇÁ·Î¼¼½º´Â ±×°ÍµéÀÇ Çڵ鿡 Á¢¼ÓÇÏ´Â ¹ýÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. stdin, stdout, stderr ´Â ±â´ë´ë·Î ¿òÁ÷ÀÔ´Ï´Ù.
ÁÖÀÇ:

¸¸¾à ´Ü ¹æÇâ(ÇÑ ¹æÇâ)ÀÇ ÆÄÀÌÇÁ¸¦ ÀÌ¿ëÇÒ »ÓÀ̶ó¸é popen() ¸¦ ¾²´Â °Ô ´õ °£´ÜÇÕ´Ï´Ù.
ÃßõÃßõ : 261 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,735
[jQuery]toggleClass() ¸Þ¼­µå·Î CSS Ŭ·¡½º¿¡ ´ëÇÑ Åä±×¸µ
2,734
JQuery ¸Þ¼­µå Çѹø¸¸ ½ÇÇà ( One() )
2,733
jQuery Event(À̺¥Æ®¿¡ »ý¸íÀ»)
2,732
jQuery Event - bind() ¸Þ¼­µå¸¦ ÅëÇÑ À̺¥Æ® ¿¬°á
2,731
escapeshellcmd
2,730
passthru
2,729
system
2,728
exec
proc_open
2,726
popen
2,725
fgetc
2,724
fgets
2,723
fclose
2,722
fopen
2,721
fsockopen
2,720
stream_set_timeout
2,719
JQUERY Ŭ¸¯ À̺¥Æ® °­Á¦ ¹ß»ý
2,718
ajaxComplete() Ajax°¡ ¿Ï·áµÇ¸é È£Ãâ
2,717
ajaxError() Ajax ¿¡·¯°¡ ¹ß»ýµÇ¸é È£Ãâ
2,716
jQuery.ajaxPrefilter() $.ajax() ÇÔ¼ö È£Ãâ Àü Ajax ¿É¼Ç ¼öÁ¤
2,715
ajaxSend() Ajax ¿äûÀ» º¸³»±â Àü¿¡ È£ÃâµÇ´Â À̺¥Æ®
2,714
jQuery.ajaxSetup() Ajax ¿É¼Ç °ªÀ» ¼³Á¤ÇÏ´Â ÇÔ¼ö
2,713
ajaxStart() Ajax ¿äûÀÌ ½ÃÀÛµÉ ¶§ È£ÃâµÇ´Â ÇÔ¼ö
2,712
ajaxStop() Ajax ¿äûÀÌ ¿Ï·áµÇ¸é È£Ãâ
2,711
ajaxSuccess() Ajax ¿äûÀÌ ¼º°øÀûÀ¸·Î ¿Ï·á ¶§¸¶´Ù È£Ãâ
2,710
jQuery.getScript, JavaScript ÆÄÀÏÀ» ·ÎµåÇÏ°í ½ÇÇà
2,709
load(), Ajax·Î ¹ÞÀº HTMLÀ» ÀÏÄ¡ÇÏ´Â ¿ä¼Ò ¾È¿¡ Ãß°¡
2,708
jQuery.param(), Ajax µ¥ÀÌÅÍ¿ë ¹è¿­À̳ª °´Ã¼¸¦ Á÷·ÄÈ­
2,707
jQuery.get() HTTP GET ¹æ½Ä Ajax ¿äû
2,706
jQuery.post(), Ajax HTTP POST ¹æ½Ä ¿äû
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.