 |
|
|  |
|
 |
14³â Àü |
ÆÄÀÏ°ú °ü·ÃµÈ PHP ÇÔ¼ö Á¤¸®
1. file_exists [¢Ö]
ÆÄÀÏÀ» ¿Å±â°Å³ª, º¹»çÇϰųª ÆÄÀÏÀÇ ³»¿ëÀ» ÀÐÀ» ¶§, ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â Áö ¿©ºÎ¸¦ üũÇÏ´Â ÇÔ¼ö
bool file_exists ( string $filename )
$filenameÀº ÆÄÀÏÀÇ °æ·Î¿Í À̸§À» ÀÎÀÚ·Î ¹ÞÀ¸¸ç, $filenameÀÌ À¯È¿ÇÑÁö ¿©ºÎ¸¦ ¸®ÅÏÇÕ´Ï´Ù.
2. file Information¸¦ ¾ò°í ½ÍÀ» ¶§
•array stat ( string $filename ) [¢Ö] - ÆÄÀÏÀÇ Åë°èÁ¤º¸¸¦ ¸®ÅÏ
•string filetype ( string $filename ) [¢Ö] - ÆÄÀÏŸÀÔÀ» ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅϵǴ ŸÀÔÀº fifo, char, dir, block, link, file, socket and unknown ÀÌ ¸®Åϵ˴ϴÙ.
•int filesize ( string $filename ) [¢Ö] - ÆÄÀÏÅ©±â¸¦ ¸®ÅÏÇÕ´Ï´Ù.
•bool is_readable ( string $filename ) [¢Ö] - ÀÎÀÚ·Î ¹ÞÀº ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Â Áö ¿©ºÎ¸¦ ¸®ÅÏÇÕ´Ï´Ù.
•bool is_writable ( string $filename ) [¢Ö] - ÀÎÀÚ·Î ¹Þ´Â $filenameÀÌ Á¸ÀçÇÏ°í ¾µ ¼ö ÀÖ´Â °æ¿ì¿¡ true¸¦ ¸®ÅÏÇÕ´Ï´Ù.
•bool is_executable ( string $filename ) [¢Ö] - ÆÄÀÏÀÌ ½ÇÇàµÉ ¼ö ÀÖ´Â Áö ¿©ºÎ¸¦ ¸®ÅÏÇÕ´Ï´Ù.
3. Reading Files, ÆÄÀÏÀ» ÀÐ°í ½ÍÀ» ¶§
<?php
$filename = "sample.txt";
$fileArr = file($filename);
// or
$fileStr = file_get_contents($filename);
?>
•array file ( string $filename [, int $flags [, resource $context ]] ) [¢Ö] - Àüü ÆÄÀÏÀÇ ³»¿ëÀ» ¹è¿ÇüÅ·Π¸®ÅÏÇÕ´Ï´Ù.
•string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int $maxlen ]]]] ) [¢Ö] - Àüü ÆÄÀÏÀÇ ³»¿ëÀ» stringÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.
file_get_contents()°¡ ¾ø´Â ¿À·¡µÈ PHP¿¡¼´Â fread¸¦ »ç¿ëÇÏ¿©¼ ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù.
<?php
$filename = "sample.txt"
$fp = fopen($filename, "rb") or die("fopen failed");
// Àüü ÆÄÀÏÀ» ÀÐÀ» ¶§
$fileStr = fread($fp, filesize($filename));
// ¶Ç´Â ³×Æ®웤À» ÅëÇؼ ÆÄÀÏÀ» ´ÜÀ§º°·Î ÀоîµéÀÏ ¶§
while(!feof($fp)) {
$fileStr .= fgets($fp, 1024);
}
fclose($fp) or die("fclose failed");
?>
•resource fopen ( string $filename , string $mode [, bool $use_include_path [, resource $context ]] ) [¢Ö] - ÆÄÀÏÀ» ¿°í ÆÄÀÏ ½ºÆ®¸²À» ¸®ÅÏÇÕ´Ï´Ù.
•string fread ( resource $handle , int $length ) [¢Ö] - ÀÎÀÚ·Î ¹ÞÀº $handle ÆÄÀÏÀÇ ³»¿ëÀ» $length¸¸ Å ÀоîµéÀÔ´Ï´Ù.
•bool fclose ( resource $handle ) [¢Ö] - ÀÎÀÚ·Î ¹ÞÀº ÆÄÀÏ Æ÷ÀÎÅÍ(½ºÆ®¸²)¸¦ ´Ý½À´Ï´Ù.
•bool feof ( resource $handle ) [¢Ö] - ÆÄÀÏ Æ÷ÀÎÅÍ°¡ eof(end of file)ÀÎ Áö¸¦ üũÇÕ´Ï´Ù.
•string fgets ( resource $handle [, int $length ] ) [¢Ö] - ÆÄÀÏÆ÷ÀÎÅͷκÎÅÍ Æ¯Á¤ ±æÀ̸¸Å ÆÄÀÏÀÇ ³»¿ëÀ» ÀоîµéÀÔ´Ï´Ù.
4. Writing Files, ÆÄÀÏ ¾²±â
<?php
$data = "file Data...";
file_put_contents('sample.txt', $data) or die("file_put_contents failed");
?>
•int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] ) [¢Ö] - ÆÄÀÏ À̸§°ú ÆÄÀÏÀÌ µ¥ÀÌŸ¸¦ ÀÎÀÚ·Î ¹Þ¾Æ¼ ÆÄÀÏ¿¡ µ¥ÀÌŸ¸¦ ¾²´Â ÇÔ¼öÀÔ´Ï´Ù. ¼¼ ¹ø° ÀÎÀÚ·Î FILE_APPEND Ç÷¡±×¸¦ »ç¿ëÇϸé, µ¥ÀÌŸ¸¦ µ¤¾î¾²´Â°Ô ¾Æ´Ï¶ó µ¡ºÙ¿© ½á³ÖÀ» ¼ö ÀÖ½À´Ï´Ù.
file_get_contents()¿Í fopen()ó·³ fwirte()¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» ¾µ ¼öµµ ÀÖ½À´Ï´Ù.
<?php
$data = "file Data...";
$fp = fopen("sample.txt", wb+) or die("fopen failed");
if(flock($fp, LOCK_EX)) {
fwrite($fp, $data) or die("fwrite failed");
flock($fp, LOCK_UN);
}
fclose($fp) or die("fclose failed");
?>
•int fwrite ( resource $handle , string $string [, int $length ] ) [¢Ö] - ÆÄÀÏ ½ºÆ®¸²°ú ÆÄÀÏ¿¡ ¾µ µ¥ÀÌŸ¸¦ ÀÎÀÚ·Î ¹Þ¾Æ¼ ÆÄÀÏ¿¡ µ¥ÀÌŸ¸¦ ¾¹´Ï´Ù. ¼¼ ¹ø° ÀÎÀÚ°¡ ÁÖ¾îÁø °æ¿ì ÁÖ¾îÁø ±æÀ̱îÁö¸¸ ÆÄÀÏÀÌ ½áÁö°Ô µË´Ï´Ù.
•bool flock ( resource $handle , int $operation [, int &$wouldblock ] ) [¢Ö] - ÆÄÀÏÀÇ ½ºÆ®¸²°ú $operationÀ» ÀÎÀÚ·Î ¹Þ¾Æ¼ ÆÄÀÏ ¶ôÀ» ¼³Á¤ÇÕ´Ï´Ù. LOCK_EX(exclusive lock), LOCK_SH(shared lock), LOCK_UN(unlock), LOCK_NB¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÀÏÀ» ¾µ ¶§ ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ µ¿½Ã¿¡ ÇϳªÀÇ ÆÄÀÏ¿¡ ¿¢¼¼½ºÇؼ ÆÄÀÏÀÌ ÇëŬ¾îÁö´Â °ÍÀ» ¹æÁöÇϱâ À§Çؼ lockÀ» ¼³Á¤ÇÕ´Ï´Ù. php¿¡¼ÀÇ lock¸¸ ÇØ´çÇϸç php ¿ÜÀÇ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼ Á¢±ÙÇÏ´Â °Í±îÁö lockÀ» °ÉÁö´Â ¸øÇÕ´Ï´Ù.
5. Removing file lines. ÆÄÀÏÀÇ ¶óÀÎÀ» »èÁ¦Çϱâ
<?php
$filename = "sample.txt";
//fileÀ» Àоîµé¿©¼ ¹è¿ÇüÅ·Π$data¸¦ ÀоîµéÀÔ´Ï´Ù.
$data = file($filename) or die("file failed");
// ¹è¿ÀÇ ¼¼ ¹ø° ¶óÀÎÀ» »èÁ¦ÇÕ´Ï´Ù.
unset($data[2]);
// ¹è¿À» À妽º¸¦ »õ·Î »ý¼ºÇÕ´Ï´Ù.
$data = array_values($data);
file_put_contents($filename, implode($data)) or die("fipe_put_contents failed");
?>
•void unset ( mixed $var [, mixed $var [, mixed $... ]] ) [¢Ö] - °ªÀ» »èÁ¦ÇÏ´Â ÇÔ¼ö·Î ÀÎÀÚÀÇ Å¸ÀÔ¿¡ µû¶ó¼ ´Ù¸£°Ô µ¿ÀÛÇÕ´Ï´Ù.
•array array_values ( array $input ) [¢Ö] - ÀÔ·Â ¹è¿ÀÇ ¸ðµç °ªÀ» ¼ýÀÚ Å°°ª°ú ÇÔ²² ¸®ÅÏÇÕ´Ï´Ù.
6. Processing Directories µð·ºÅ丮 ´Ù·ç±â
<?php
$dir = "./sample";
// µð·ºÅ丮¿¡ µé¾îÀÖ´Â ÆÄÀÏ/µð·ºÅ丮µéÀ» ¹è¿ÇüÅ·Π¸®ÅÏÇÕ´Ï´Ù.
$fileList = scandir($dir) or die("scandir failed");
// ¹è¿À» ·çÇÁ·Î µ¹¸é¼ µð·ºÅ丮¿¡ µé¾îÀÖ´Â ÆÄÀϵ鿡 ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.
foreach ($fileList as $file) {
// ½ÇÁ¦ ÆÄÀÏÀÎÁö ¿©ºÎ¸¦ üũÇÕ´Ï´Ù.
if( is_file("$dir/$file") && $file != '.' && $file != '..') {
//...
}
}
?>
•array scandir ( string $directory [, int $sorting_order [, resource $context ]] ) [¢Ö] - µð·ºÅ丮¾È¿¡ ÀÖ´Â ÆÄÀÏ°ú µð·ºÅ丮¸¦ ¹è¿·Î ¸®ÅÏÇÕ´Ï´Ù.
<?php
$dir = "./sample";
// DirectoryIterator¸¦ »ý¼ºÇÕ´Ï´Ù.
$iterator = new DirectoryIterator($dir);
// ³»ºÎÀÇ iterator¸¦ ù element·Î À̵¿½Ãŵ´Ï´Ù.
$iterator->rewind();
// current element°¡ ÀÖ´Â Áö ¿©ºÎ¸¦ È®ÀÎÇÑ ÈÄ
while($iterator->vaild()) {
// µð·ºÅ丮°¡ ¾Æ´Ñ ½ÇÁ¦ ÆÄÀÏÀÎÁö¸¦ È®ÀÎÇÑ ÈÄ ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.
if($iterator->isFile() && !$iterator->isDot()) {
// ...
}
// ´ÙÀ½ element·Î iterator¸¦ ³Ñ±é´Ï´Ù.
$iterator->next();
}
?>
DirectoryIterator($path)´Â $path¸¦ ÀÎÀÚ·Î ¹Þ¾Æ¼ »ý¼ºÇÏ¸ç µð·ºÅ丮ÀÇ ÆÄÀÏ/µð·ºÅ丮¸¦ À̵¿Çϸç ÆÄÀÏÁ¤º¸¸¦ È®ÀÎÇϰųª ÀÛ¾÷À» ÇÒ ¼ö Àִ Ŭ·¡½ºÀÔ´Ï´Ù.
7. Renaming Files and Directories µð·ºÅ丮 ´Ù·ç±â
<?php
$oldFileName = "oldName.txt";
$newFileName = "newName.txt";
// ÆÄÀÏÀÌ ÀÖ´Â Áö ¿©ºÎ¸¦ üũÇÕ´Ï´Ù.
if(file_exists($oldFileName)) {
// ´ë»ó ÆÄÀÏÀÇ À̸§À» ¼öÁ¤ÇÕ´Ï´Ù.
rename($oldFileName, $newFileName) or die("Renaming file is failed.");
} else {
die("Cannot find file '$oldFileName'");
}
?>
rename()Àº ÆÄÀÏÀ̸§ º¯°æ ¹× ÆÄÀÏÀÇ À§Ä¡ À̵¿À» µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â ÇÔ¼öÀÔ´Ï´Ù. ÀÎÀÚ´Â º¯°æÇÒ ¿ø ÆÄÀÏÀÇ À̸§°ú º¯°æ ´ë»óÀÌ µÇ´Â ÆÄÀÏ µÎ °³¸¦ ÀÎÀÚ·Î ¹Þ½À´Ï´Ù.
°ü·ÃÀÚ·á: PHP Programming SOLUTIONS 6Àå "Working with Files and Directories" Ã¥ º¸¸é¼ Á¤¸®ÇÑ ³»¿ëÀÔ´Ï´Ù. |
|
̵̧ : 303 |
̵̧
¸ñ·Ï
|
|
|  |
|