 |
|
|  |
PHP ÆÄÀÏ ½Ã½ºÅÛ(File System) ´Ù·ç±â #1 |
|
|
 |
13³â Àü |
[PHP] ÆÄÀÏ ½Ã½ºÅÛ(File System) ´Ù·ç±â #1
PHP ÆÄÀÏ¿±â¿Í ´Ý±â
¹«½¼ÀÏÀ» ÇÏ´øÁö ÀýÂ÷°¡ Àֱ⠸¶·ÃÀÔ´Ï´Ù. php¿¡¼ ÆÄÀÏÀ» »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ÀýÂ÷´Â ¿©Å¸ ¾ð¾î¿Í ´Ù¸£Áö ¾Ê½À´Ï´Ù. ÆÄÀÏÀ» ¿°í, ¿ëµµ¿¡ ¸Â°Ô »ç¿ëÇÏ°í, ´Ý¾ÆÁÖ¸é µË´Ï´Ù.
1. ÆÄÀÏ¿±â
php¿¡¼ ÆÄÀÏÀ» »ç¿ëÇϱâ À§Çؼ °¡Àå ¸ÕÀú ÇØ¾ß ÇÒ ÀýÂ÷¶ó¸é ÆÄÀÏÀ» ¿©´Â °ÍÀÔ´Ï´Ù. php¿¡¼´Â ÆÄÀÏÀ» ¿±â À§Çؼ fopen ÇÔ¼ö¸¦ Á¦°øÇÕ´Ï´Ù.
¡Øphp¿¡¼ »ç¿ëµÇ´Â ÇÔ¼öµéÀº C¾ð¾îÀÇ ÇÔ¼öµé°ú »ó´çÈ÷ À¯»çÇÑ °ÍÀÌ ¸¹½À´Ï´Ù. ÆÄÀÏ°ü·Ã ÇÔ¼öµé ¿ª½Ã ¿¹¿Ü´Â ¾Æ´Õ´Ï´Ù.
int fopen (string filename, string mode [, int use_include_path])
À§´Â fopen ÇÔ¼öÀÇ ¿øÇüÀÔ´Ï´Ù. fopen ÇÔ¼ö´Â ÆÄÀÏ¿±â¿¡ ¼º°øÇÏ¸é ´Ù¸¥ ÆÄÀÏÀÔÃâ·Â ÇÔ¼öµéÀÌ ÂüÁ¶ÇÒ Á¤¼ö ÇüÀÇ ÆÄÀÏÇÚµé(Æ÷ÀÎÅÍ)À» ¸®ÅÏÇØ ÁÝ´Ï´Ù. ÀÌ ¸®ÅÏ °ªÀ» º¯¼ö¿¡ ÀúÀåÇß´Ù°¡ ´ë´Ù¼öÀÇ ÆÄÀÏ°ü·Ã ÇÔ¼öµéÀ» »ç¿ëÇÒ ¶§ ¸Å°³º¯¼ö·Î ³Ñ°ÜÁÖ°Ô µÇ¸é ÆÄÀÏ°ü·Ã ÇÔ¼öµéÀº ³Ñ°Ü¹ÞÀº º¯¼öÀÇ °ªÀ» ÂüÁ¶Çؼ »ç¿ëÇÏ°Ô µÉ ÆÄÀÏÀ» ¾Ë¼ö ÀÖ°Ô µË´Ï´Ù. ÆÄÀÏ¿±â¿¡ ½ÇÆнÿ¡´Â false¸¦ ¶æÇÏ´Â 0À» ¸®ÅÏÇÏ°Ô µË´Ï´Ù. ¾Æ·¡´Â fopen ÇÔ¼öÀÇ »ç¿ë ¿¹ÀÔ´Ï´Ù.
//·ÎÄÿ¡ ÀÖ´Â test.php ÆÄÀÏÀ» ÀбâÀü¿ëÀ¸·Î ¿±´Ï´Ù.
$fp=fopen("./test.php","r");
//httpÇÁ·ÎÅäÄÝÀ» »ç¿ëÇؼ À¥»ó¿¡ÀÖ´Â test.php ÆÄÀÏÀ» ÀбâÀü¿ëÀ¸·Î ¿±´Ï´Ù.
$fp=fopen("http://www.musictrot.com/test.php/","r");
//ftpÇÁ·ÎÅäÄÝÀ» »ç¿ëÇؼ ftp¼¹ö»ó¿¡ ÀÖ´Â test.php ÆÄÀÏÀ» Àбâ Àü¿ëÀ¸·Î ¿±´Ï´Ù. ftp·Î Á¢¼ÓÀ» ¸Î±â À§Çؼ´Â °æ·Î»ó¿¡ È£½ºÆ®¸í »Ó¸¸ ¾Æ´Ï¶ó, »ç¿ëÀÚ¸í°ú ºñ¹Ð¹øÈ£¸¦ °°ÀÌ ÀÔ·ÂÇØ ³õ¾Æ¾ß ÇÕ´Ï´Ù. ¾Æ·¡ÀÇ ftp ¿¹¿¡¼´Â myuser°¡ »ç¿ëÀÚ¸í password°¡ ºñ¹Ð¹øÈ£ÀÔ´Ï´Ù.
$fp=fopen("ftp:myuser:password@musictrot.com/test.php","r");
fopenÇÔ¼ö´Â ·ÎÄÿ¡ ÀúÀåµÇ¾î ÀÖ´Â ÆÄÀÏ »Ó¸¸ ¾Æ´Ï¶ó, http¿Í ftp ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇؼ ¿ø°Ý¿¡ ÀÖ´Â ÆÄÀÏÀ» ¿¼öµµ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ ºÎºÐÀº º¸¾È¿¡ ¹Î°¨ÇÑ »çÇ×ÀÌ¶ó¼ ¸î°¡Áö Á¦¾à»çÇ×ÀÌ ÀÖ½À´Ï´Ù.
¡Ø Á¦¾à»çÇ×
http¿Í ftpÀ» ÀÌ¿ëÇؼ ÆÄÀÏÀ» ¿±â À§Çؼ´Â php.ini ÆÄÀÏÀÇ allow_url_fopen ¿É¼ÇÀÌ OnÀ¸·Î ¼³Á¤µÇ¾îÁ® ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¾Æ¸¶µµ À¥È£½ºÆà ¼ºñ½º¸¦ ¹Þ°í ÀÖ´Ù¸é ´ëºÎºÐÀÇ ¼¹ö°ü¸®ÀÚ´Â allow_url_fopen ¿É¼ÇÀ» Off·Î ¼³Á¤ÇØ ³õ¾ÒÀ» °ÍÀÔ´Ï´Ù.
ftp´Â ÇÑ°¡Áö ´õ Á¦¾à»çÇ×ÀÌ Àִµ¥ ftp ¼¹ö°¡ passive¸ðµå¸¦ Áö¿øÇØ¾ß ¸¸ ÇÕ´Ï´Ù.
¾Æ·¡´Â allow_url_fopen ¿É¼ÇÀÌ Off·Î ¼³Á¤µÇ¾úÀ»¶§ http ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇؼ fopenÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ Ãâ·ÂµÇ´Â ¿¡·¯¸Þ½ÃÁöÀÔ´Ï´Ù.
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration
À§ÀÇ ÇÔ¼öÀÇ ¿øÇü¿¡¼ ¾Ë¼ö ÀÖµíÀÌ fopen ÇÔ¼ö´Â 3°³ÀÇ ÆĶó¹ÌÅ͸¦ ÀÎÀÚ·Î ¹Þ½À´Ï´Ù.
1) ù¹ø° ÆĶó¹ÌÅÍ
String filename ¿°íÀÚ ÇÏ´Â ÆÄÀϸíÀÔ´Ï´Ù.
2) µÎ¹ø° ÆĶó¹ÌÅÍ
String mode ÆÄÀÏÀ» ¿©´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â ÆĶó¹ÌÅÍ·Î Àбâ - "r", ¾²±â- "w", Ãß°¡ - "a" ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.
Á¤¸®ÇØ º¸¸é ¾Æ·¡¿Í °°½À´Ï´Ù.
r Àбâ Àü¿ëÀ¸·Î ¿±´Ï´Ù. ÆÄÀÏ Æ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ Ã³À½¿¡ À§Ä¡ÇÕ´Ï´Ù.
r+ Á¸ÀçÇÏ´Â ÆÄÀÏÀ» °»½Å(Àаí,¾²±â)¿ëÀ¸·Î ¿±´Ï´Ù. ÆÄÀÏ Æ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ Ã³À½¿¡ À§Ä¡ÇÕ´Ï´Ù.
w ¾²±â Àü¿ëÀ¸·Î ÆÄÀÏÀ» ¿±´Ï´Ù. µ¿ÀÏÇÑ ÆÄÀϸíÀÇ ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì ¸ðµç ³»¿ëÀ» »èÁ¦ÇÕ´Ï´Ù, ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ÆÄÀÏÀ» »õ·Î »ý¼ºÇÕ´Ï´Ù. µÎ°æ¿ì ¸ðµÎ ÆÄÀÏ Æ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ Ã³À½¿¡ À§Ä¡ÇÕ´Ï´Ù.
w+ °»½Å(Àаí,¾²±â)¿ëÀ¸·Î ÆÄÀÏÀ» ¿±´Ï´Ù. µ¿ÀÏÇÑ ÆÄÀϸíÀÇ ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °æ¿ì ¸ðµç ³»¿ëÀ» »èÁ¦Çϸç, ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ÆÄÀÏÀ» »õ·Î »ý¼ºÇÕ´Ï´Ù. µÎ°æ¿ì ¸ðµÎ ÆÄÀÏ Æ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ Ã³À½¿¡ À§Ä¡ÇÕ´Ï´Ù.
a Ãß°¡¿ëÀ¸·Î ÆÄÀÏÀ» ¿±´Ï´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é ÆÄÀÏÀ» »ý¼ºÇÏ°í, ÆÄÀÏÀÌ Á¸ÀçÇϸé ÆÄÀÏÆ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ ³¡¿¡ À§Ä¡ÇÕ´Ï´Ù.
a+ Ãß°¡¿ë, °»½Å¿ëÀ¸·Î ÆÄÀÏÀ» ¿±´Ï´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é ÆÄÀÏÀ» »ý¼ºÇÏ°í, ÆÄÀÏÀÌ Á¸ÀçÇϸé ÆÄÀÏ Æ÷ÀÎÅÍ´Â ÆÄÀÏÀÇ ³¡¿¡ À§Ä¡ÇÕ´Ï´Ù.
3) ¼¼¹ø° ÆĶó¹ÌÅÍ
use_include_path´Â ¼±ÅÃÀû ÆĶó¹ÌÅÍÀÔ´Ï´Ù.
Á¤¼ö"1"¶Ç´Â true¸¦ ÁöÁ¤ÇßÀ» °æ¿ì ÁöÁ¤µÈ µð·ºÅ丮¿¡ ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é include path¿¡¼ ÆÄÀÏÀ» ã½À´Ï´Ù.
2. ÆÄÀϴݱâ
ÆÄÀÏ¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ³¡³µÀ» °æ¿ì fclose ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ ÆÄÀÏÀ» ´Ý¾Æ ÁÝ´Ï´Ù. ÆÄÀÏÀ» ´ÝÁö ¾Ê°í php ½ºÅ©¸³Æ®°¡ Á¾·áµÇ´õ¶óµµ ÆÄÀÏÀº ¾Ë¾Æ¼ ´ÝÈ÷°Ô µÇÁö¸¸, Àü¿¡ »ç¿ëÇß´ø ÆÄÀÏ Æ÷ÀÎÅ͸¦ Àç »ç¿ëÇØ¾ß ÇØ¾ß ÇÒ °æ¿ì, ¶Ç´Â °ú´ÙÇÑ ÆÄÀÏ ÇÔ¼ö È£Ãâ½Ã ÆÄÀÏÀ» ¿Áö ¸øÇÑ´Â °æ¿ì°¡ »ý±æ ¼öµµ ÀÖÀ¸¹Ç·Î ÆÄÀÏÀ» ´Ý¾ÆÁÖ´Â ½À°üÀ» µéÀÌ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
php¿¡¼ ÆÄÀϴݱ⸦ À§Çؼ´Â fclose ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
int fclose(int fp);
ÆĶó¹ÌÅÍÀÎ fp´Â fopenÇÔ¼öÀÇ ¸®ÅÏ°ªÀÎ Á¤¼öÇü ÆÄÀÏ Æ÷ÀÎÅÍÀ̸ç ÆÄÀϴݱ⿡ ¼º°øÇϸé true ¸¦ ¶æÇÏ´Â Á¤¼ö1À» ½ÇÆÐÇϸé false¸¦ ¶æÇÏ´Â 0 À» ¹ÝȯÇÕ´Ï´Ù.
¾Æ·¡´Â test.php ÆÄÀÏÀ» Àбâ Àü¿ëÀ¸·Î ¿¾î¼ ±× ³»¿ëÀ» ȸ鿡 Ãâ·ÂÇÏ´Â °£´ÜÇÑ ¿¹ÀÔ´Ï´Ù. fgetc ÇÔ¼ö´Â ÆÄÀÏÀÇ ³»¿ëÀ»
ÇÑ ±ÛÀÚ¾¿ ÀоîµéÀÌ´Â ÇÔ¼öÀÔ´Ï´Ù.
<?php
$filename = "test.php";
$fp = fopen($filename, "r") or die("ÆÄÀÏ¿±â¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù");
$buffer = "";
while(!feof($fp)){
$buffer .= fgetc($fp);
}
echo "<pre>".htmlspecialchars($buffer)."</pre>";
fclose($fp);
?>
|
|
̵̧ : 492 |
̵̧
¸ñ·Ï
|
|
|  |
|