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


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() ¸¦ ¾²´Â °Ô ´õ °£´ÜÇÕ´Ï´Ù.
ÃßõÃßõ : 308 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,891
ÀÔ·Â Çʵ忡¼­ ƯÁ¤´Ü¾î(¿¹:#err)°¡ Æ÷ÇԵǾúÀ» ¶§ ½Ç½Ã°£ °¨Áö ¹× °æ°íâ ¶ç¿ì±â
2,890
µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ­¿Í Äõ¸® È¿À²¼ºÀ» ³ôÀÌ °Ë»ö ¼º´ÉÀ» °³¼±ÇÏ´Â ¹æ¹ý
2,889
°£´ÜÇÑ °Ô½ÃÆÇ ¸¸µé±â
2,888
PHPÀÇ php.ini ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÁÖ¿ä Ç׸ñµéÀ» Ä«Å×°í¸®º°·Î Á¤¸®
2,887
À¯Æ©ºê µ¿¿µ»óÀÇ ½æ³×ÀÏ À̹ÌÁö¸¦ üũÇÏ¿© À¯È¿ÇÑ ¿µ»óÀ̾ƴҶ§ ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,886
À̹ÌÁö URLÀÌ À¯È¿ÇÏÁö ¾ÊÀ» ¶§, ÇØ´ç À̹ÌÁö¿Í ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,885
HTTPS·Î Á¢¼ÓÇÑ »ç¿ëÀÚ¸¦ °­Á¦·Î HTTP·Î ¸®µð·º¼Ç ÇÏ·Á¸é
2,884
PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
2,883
ÇöÀç ÆäÀÌÁö°¡ location.reload()¿¡ ÀÇÇØ »õ·Î°íħµÇ¾ú´ÂÁö
2,882
ÅؽºÆ® ÆÄÀÏÀ» Àаí, °¢ ÁÙÀÇ ³¡¿¡¼­ 6±ÛÀÚ¸¦ »èÁ¦ÇÑ ÈÄ, °á°ú¸¦ »õ·Î¿î ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù.
2,881
cURLÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®¸¦ µû¶ó°¡ ÃÖÁ¾ URL °¡Á®¿À±â
2,880
[PHP] $_SERVER ȯ°æº¯¼ö
2,879
10Áø¼ö <-> 16Áø¼ö º¯È¯±â PHP¼Ò½º
2,878
ÅؽºÆ®¿¡ Á÷Á¢ ±×¶óµ¥ÀÌ¼Ç »ö»óÀ» Àû¿ëÇÏ·Á¸é?
2,877
CSS¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ë¹°¿¡ µû¶ó width¸¦ Á¶Á¤ÇÏ´Â ¹æ¹ý
2,876
À¥¼­¹ö ip È®ÀÎ
2,875
À¥È£½ºÆÃÀÇ Àý´ë°æ·Î¸¦ È®ÀÎ
2,874
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,873
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,872
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,871
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,870
sessionStorage.getItem ¿Í sessionStorage.setItem
2,869
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,868
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,867
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,864
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,863
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,862
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.