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

proc open
7³â Àü
(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() ¸¦ ¾²´Â °Ô ´õ °£´ÜÇÕ´Ï´Ù.
ÃßõÃßõ : 255 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,885
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,884
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,883
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,882
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,881
sessionStorage.getItem ¿Í sessionStorage.setItem
2,880
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,879
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,878
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,877
Audio Streaming PHP Code
2,876
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,875
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,874
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,873
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
2,872
ºÎÆ®½ºÆ®·¦(bootstrapk)¿¡¼­ »ç¿ëÇÏ´Â class¸í Á¤¸®
2,871
ºÎÆ®½ºÆ®·¦ CSS
2,870
Å©·Ò¿¡¼­ ¸¶Áø Á¶Àý
2,869
PHP ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀθíÀ̳ª urlµîÀÇ Á¤º¸ ¾Ë¾Æ¿À±â
2,868
PHP preg match all()
2,867
PHP ·Î À¥ÆäÀÌÁö ±Ü¾î¿À±â ¸ðµç ¹æ¹ý ÃÑÁ¤¸®!
2,866
[PHP] ¿ø°ÝÁö ÆÄÀÏ ÁÖ¼Ò ³ëÃâ ¾ÈÇÏ°í curl·Î ´Ù¿î·Îµå ¹Þ±â
2,865
PHP ÇÔ¼ö Á¤¸®
2,864
¾ÆÀÌÇÁ·¹ÀÓ(iframe) ºñÀ² À¯ÁöÇϸ鼭 Å©±â Á¶ÀýÇÏ´Â ¹æ¹ý
2,863
PHP ¹è¿­¿¡¼­ ¹«ÀÛÀ§·Î Çϳª »Ì¾ÆÁÖ´Â array rand() ÇÔ¼ö
2,862
PHP Á¤±Ô½Ä Á¤¸®
2,861
PHP Á¤±Ô½ÄÀ» È°¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
2,860
php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
2,859
Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
2,858
À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
2,857
¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
2,856
[HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.