1. 파일읽기

$data = file("파일이름");
위에처럼 하면 해당파일의 모든 내용이 $data라는 변수로 읽혀집니다.

--------- data.txt 파일 내용 ---------
가나다라
마바사
아자차카
타파하
--------- data.txt 파일 내용 ---------

data.txt 파일에는 4줄의 글이 들어가 있습니다. 이 파일을 file() 로 읽었을때 어떻게 표시하면 될까요 ?

echo $data[0]; 하시면 "가나다라" 라고 출력됩니다.
echo $data[1]; 하시면 "마바사" 라고 출력됩니다.
echo $data[2]; 하시면 "아자차카" 라고 출력됩니다.
echo $data[3]; 하시면 "타파하" 라고 출력됩니다.

 

2. 새로운 파일 생성 및 데이터 기록

$file = fopen("data.txt", "w");
fwrite($file, "가나다라 마바사 아자차카 타파하");
fclose($file);

위처럼 하시면 data.txt 라는 파일을 만들어서 그 파일에 "가나다라 마바사 아자차카 타파하" 라고 적어넣게 됩니다.

 

3. 기존 파일에 데이터 추가하기

$file = fopen("data.txt", "a");

"a" 옵션 사용시 기존 데이터에 추가해서 기록한다는 의미입니다.

$file = fopen("data.txt", "w");

"w" 옵션 사용시 새로 작성하는 것이라 기존내용이 모두 지워집니다.

$file = fopen("data.txt", "r");

"r" 옵션 사용시 읽어들인다는 의미입니다.

 

4. 디렉토리 내의 파일 읽기 (아래의 3가지 방법중 선택)


$DIR = "/home/public_html/";

if (is_dir($DIR))
{
 if ($dh = opendir($DIR))
 {
  while (($FN = readdir($dh)) !== false)
  {
   if (filetype($DIR.$FN) == "file") // 디렉토리는 표시하지 말고 파일만 표시하라. 디렉토리는 file 대신 dir 입니다.
   {
    echo $FN."<br/>";
   }
  }
  closedir($dh);
 }
}

--------------------

function get_file_list($path, $arr=array()){
    $dir = opendir($path);
    while($file = readdir($dir)){
        if($file == '.' || $file == '..'){
            continue;
        }else if(is_dir($path.'/'.$file)){
            $arr = get_file_list($path.'/'.$file, $arr);
        }else{
            $arr[] = $path.'/'.$file;
        }

    }
    closedir($dir);
    return $arr;
}


$data = get_file_list("/home/public_html");

for ($i=0;$i<=count($data);$i++)
{
 echo $data[$i]."<br>";
}

--------------------

function filesInDir ($tdir)
{
 if($dh = opendir ($tdir)) {
  $files = Array();
  $in_files = Array();

  while($a_file = readdir ($dh)) {
   if($a_file[0] != '.') {
    if(is_dir ($tdir . "/" . $a_file)) {
     $in_files = filesInDir ($tdir . "/" . $a_file);
     if(is_array ($in_files)) $files = array_merge ($files , $in_files);
    } else {
     array_push ($files , $tdir . "/" . $a_file);
    }
   }
  }

  closedir ($dh);
  return $files;
 }
}

foreach (filesInDir ('/home/public_html') as $key => $a_file) {
 echo ">>".$a_file . "<br>" ;
}

반응형
,