FTP로 파일을 전송하면 자동으로 XML파일을 만들어 플래시로 전송하게 되면
파일을 올리고 XML파일을 일일이 수정하는것보다 훨씬 효율적 일겁니다.
편리한 작업을 하기 위해서 두가지를 공부해야 합니다.
첫째, php파일 디렉토리 관련 함수를 알고 이를 응용해야 합니다.
둘째, 파일 관련 함수를 알아야 합니다.
PHP파일 디렉토리 함수 응용하기
opendir()함수
파일에 접근하려면 먼저 폴더를 열어야 합니다. 그것에 해당하는 PHP 디렉토리 함수입니다.
즉 더블클릭으로 폴더를 여는것에 비유할수 있습니다.
closedir()함수
opendir()함수와 반대되는 함수로 opendir()로 접근한 디렉토리를 닫을 때 사용합니다.
readdir()함수
해당폴더에 있는 하나의 파알을 반환하는 것입니다. 따라서 해당 폴더에 있는 전체의 파일의
이름을 반환하기 위해선 반복문을 사용해 처리합니다.
텍스트에디터를 열어 아래와 같은 코드를 입력하고 파일이름을 dir.php로 하여
APM 로컬 폴더(htdcos)에 저장합니다.
$handle=opendir('./');
$filename=readdir($handle);
echo $filename;
closedir($handle);
?>
웹브라우저에 http://localhost/dir.php를 입력한 후 확인하면 현재 폴더를 의미하는
점하나만 출력됩니다. 위에서 말했듯이 readdir()함수는 하나의 파일만 출력하므로
반복문으로 한번에 모든 파일의 이름을 얻어야 합니다.
$handle=opendir('./');
while($filename=readdir($handle)) {
echo "$filename
";
}
closedir($handle);
?>
폴더에 있는 모든 파일 내용이 나옵니다.
-----------------------------------------------------------------------------------
2.파일함수 응용하기
디렉토리함수로 얻어진 파일들을 텍스트파일에 기록해보겠습니다.
기본적으로 PHP는 파일을 처리할수 있는 함수를 제공하는데 이함수를 이용하여
텍스트 파일을 웹 서버에서 생성하거나 불러들일수 있습니다.
그중에 우리가 사용할 함수는 fopen(), fclose(), fwrite() fread() 네가지입니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fopen() 함수
프로그램을 이용해서 파일을 기록하고 작성하려면 파일을 오픈(file open)해야 합니다.
ex) $fp = fopen("list.txt", "r")
list.txt를 읽기모드로 연다는 겁니다.
fopen() 모드
r 파일을 읽기모드로 엽니다. 파일 포인터는 해당 파일의 처음에 위치합니다.
r+ 파일을 읽기모드와 쓰기모드로 엽니다. 파일 포인터는 해당 파일의 처음에 위치합니다.
w 파일을 쓰기모드로 엽니다. 이미존재하면 덮어씌우고 없으면 새로 만듭니다.
파일 포인터는 해당 파일의 처음에 위치합니다.
w+ 파일을 쓰기와 읽기 모드로 엽니다. 이미 존재하면 덮어씌우고 없으면 새로 만듭니다.
파일 포인터는 해당 파일의 처음에 위치합니다.
a 파일을 쓰기모드로 엽니다. 존재하지 않으면 새로 만들고 파일 포인터는
해당 파일의 마지막에 위치합니다.
a+ 파일을 읽기 및 쓰기 모드로 엽니다. 파일이 존재하지 않으면 새로 만들며
파일 포인터는 해당 파일의 마지막에 위치합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fclose() 함수
fopen()함수를 사용하여 열었을 때 그 결과를 받은 변수를 fclose()안에 지정 해주어
그파일을 닫게 하는 함수입니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fwrite() 함수
파일에 실제로 기록하는것이 바로 fwrite()함수입니다.
fwrite($fp,$str,10);
오픈한 파일에다 변수에 저장된 문자중 10바이트만 기록합니다.
fwrite($fp,$str);
오픈한 파일에다 변수에 저장된 문자를 기록합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fread() 함수
파일에서 문자를 읽어오는 데 사용하는 함수로 .length만큼 가져옵니다.
&fp = fopen("list.txt","r");
&contents = fread($fp,10);
fclose($fp);
list.txt를 읽기모드로 열어 파일 핸들 $fp에 전달하고 $fp로 지정된 파일로 부터 10바이트만큼
읽어봐서 $cotents에 전달합니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
예제)
$fp = fopen("list.txt","w");
if($fp){
echo("파일열기 성공");
}else{
echo("파일열기 실패");
}
$str = "이것은 기록될 문자입니다.";
fwrite($fp,$str);
fclose($fp);
?>
확인하면 웹브라우저창에 '파일열기 성공'이 뜨고 list.txt.파일이 생성될겁니다.
이것을 텍스트전체를 읽어오려면 filesize()함수를 쓰면 됩니다.
filesize()함수는 파일의 크기를 구하는 함수입니다.
$fp = fopen("list.txt","r");
$contents = fread($fp,filesize("list.txt"));
fclose($fp);
echo $contents;
?>
확인하면 list.txt파일을 모두읽어브라우저에 나타냅니다.


0