![](/bink.gif) |
|
| ![](/bink.gif) |
|
![](icon/private_name/1.gif) |
8³â Àü |
(PHP 4, PHP 5, PHP 7)
popen — ÇÁ·Î¼¼½º¿¡ ÆÄÀÏ Æ÷ÀÎÅ͸¦ ¿
¼³¸í
resource popen ( string $command , string $mode )
command ·Î ÁöÁ¤ÇÑ ¸í·É¾îÀÇ Æ÷Å©¿¡ ÀÌ·ç¾îÁø ÇÁ·Î¼¼½º¿¡ ÆÄÀÌÇÁ¸¦ ¿ÀÇÂÇÕ´Ï´Ù.
ÆĶó¹ÌÅÍ
command
¸í·É.
mode
¸ðµå.
¹Ýȯ °ª
fopen() ·Î ¹ÝȯµÈ ÆÄÀÏ Æ÷ÀÎÅÍ¿Í °°Àº °ÍÀ» °±´Âµ¥ ±×°ÍÀº( ÀÐ°í ¾²±âÀÇ ¾î´À ÇÑÂÊ¿¡¼¸¸ »ç¿ëµÇ´Â)´Ü ¹æÇâ ½ºÆ®¸²ÀÌ´Ù, pclose() À¸·Î ¹ÐÁ¢µÇÁö ¾ÊÀ¸¸é ¾È µÈ °÷ÀÌ ´Ù¸¨´Ï´Ù. ÀÌ Æ÷ÀÎÅÍ´Âfgets() ¹×fgetss() fwrite() ÀÇ ¾î´ÀÂÊÀ̵çÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµå°¡'r'¶§´Â µ¹·ÁÁÖ´Â ÆÄÀÏ Æ÷ÀÎÅÍ´Â ±× ¸í·ÉÀÇ STDOUT¿Í °°¾ÆÁý´Ï´Ù. ¶Ç ¸ðµå°¡ 'w'¶§´Â µ¹·ÁÁÖ´Â ÆÄÀÏ Æ÷ÀÎÅÍ´Â ±× ¸í·ÉÀÇ STDIN¿Í °°¾ÆÁý´Ï´Ù.
¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ìFALSE ¸¦ °±°Ú½À´Ï´Ù.
¿¹
»ç·Ê 1popen() ÀÇ ¿¹
<?php
$handle = popen("/bin/ls", "r");
?>
½ÇÇàÇØ¾ß ÇÒ ¸í·ÉÀÌ ¾ø´Â °æ¿ì¿£ Á¤»óÀûÀÎ ¸®¼Ò½º°¡ ¹ÝȯµË´Ï´Ù. ÀÌ»óÇÏ´Ù°í »ý°¢µÉÁöµµ ¸ð¸£Áö¸¸ ¿©±â¿¡´Â Àǹ̰¡ ÀÖ½À´Ï´Ù. ÀÌ¿¡ ÀÇÇؼ ²®Áú¿¡¼ ¹ÝȯµÈ ¿¡·¯ ¸Þ½ÃÁö¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç·Ê 2popen() ÀÇ ¿¹
<?php
error_reporting(E_ALL);
/* ¸®´ÙÀÌ·ºÆ®¿¡ ÀÇÇÑ Ç¥ÁØ ¿À·ù Ãâ·ÂÀ» ÃëµæÇÕ´Ï´Ù */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
ÁÖÀÇ:
½Ö¹æÇâ(two-way)ÀÇ ¼Æ÷Æ®¸¦ ¿ä±¸ÇÏ°í ÀÖ´Ù¸é proc_open() ¸¦ »ç¿ëÇϼ¼¿ä.
ÁÖÀÇ: ¼¼ÀÌÇÁ ¸ðµå°¡ À¯È¿ÇÑ °æ¿ì safe_mode_exec_dir ¾È¿¡ ÀÖ´Â ½ÇÇà ÇÁ·Î±×·¥¸¸À» ½ÇÇà °¡´ÉÇÕ´Ï´Ù. ½ÇÁ¦ÀûÀÎ ÀÌÀ¯·Î ÇöÀç ½ÇÇà ÇÁ·Î±×·¥¿¡ ´ëÇÑ Æнº¸¦.. Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.
°æ°í
¼¼ÀÌÇÁ ¸ðµå°¡ À¯È¿ÇÑ °æ¿ì ¸í·É ¹®ÀÚ¿Àº escapeshellcmd() ±×·¡¼ È®ÀåµË´Ï´Ù. Áï,´Âecho y | echo x ,echo y \| echo x ÀÔ´Ï´Ù. |
|
̵̧ : 315 |
̵̧
¸ñ·Ï
|
|
| ![](/bink.gif) |
|