지금은 조용한 기숙사에 앉아 있는데, 겨울방학이 저를 떠난 것 같네요... 오늘 올린 내용은 겨울방학 마지막 스터디이고, 그때부터 원피스를 시청하고 있습니다.
디렉터리 탐색과 파일 복사를 위한 C 언어 프로그램을 작성한 적이 있는데, 이 프로그램은 매우 길고 복잡했습니다. 이제 PHP를 사용하여 디렉토리를 탐색할 수 있으며 코드도 훨씬 짧아졌습니다. 이 프로그램의 목적은 디렉터리를 탐색하여 지정된 파일 이름을 가진 모든 파일을 찾아 지정된 문자열을 삭제하는 것입니다.
$tmpfiledir = $_SERVER["DOCUMENT_ROOT"].'tmp.txt';
함수 del($getstr)
{
$isbak = true; //원본 파일을 백업할지 여부, true는 백업, false는 백업하지 않음
전역 $tmpfiledir;
$fr = fopen($tmpfiledir,"r") 또는 die('임시 파일을 열지 못했습니다');
while($row = fgets($fr))
{
If(비어 있음($row)) break;
$row = 트림($row);
$opp = fopen($row,"r") 또는 die("$row를 열지 못했습니다.");
$str = fread($opp,filesize($row)) 또는 die("$row를 읽을 수 없습니다");
$str = str_replace($getstr,"",$str);
fclose($opp);
if($isbak){
copy($row,$row.'.bak') 또는 die("백업 파일 실패");
}
$ref = fopen($row,"w") 또는 die("파일을 다시 열지 못했습니다.");
fwrite($ref,$str) 또는 die("파일을 다시 쓰지 못했습니다.");
}
}
함수 트래버스($path) {
전역 $name,$tmpfiledir;
$current_dir = opendir($path); //opendir()은 디렉터리 핸들을 반환하고 실패 시 false
를 반환합니다.
if($current_dir == false)
false를 반환합니다.
while(($file = readdir($current_dir)) !== false) { //readdir()은 열린 디렉터리 핸들의 항목을 반환합니다
$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //하위 디렉터리 경로 생성
If($file == '.' || $file == '..') {
계속하세요;
} else if(is_dir($sub_dir)) { //디렉토리인 경우 재귀 수행
트래버스($sub_dir);
} else { //파일이면 다시 비교
$fileinfo = 경로정보($sub_dir);
If($fileinfo['basename'] == $name)
{
$fopen = fopen($tmpfiledir,"a");
fwrite($fopen,$sub_dir."rn");
F닫기($fopen)
}
}
}
true를 반환합니다.
}
if(isset($_POST["name"]) && isset($_POST["dir"]) && isset($_POST["str"]))
{
$name = $_POST["이름"];
Traverse($_POST["dir"]) 또는 die("임시 파일을 생성하지 못했습니다. 웹사이트 루트 디렉터리에 쓰기 가능한지 확인하세요.");
del($_POST["str"]);
>
연결 해제($tmpfiledir);
}
그렇지 않으면
{
echo "
관련 정보를 입력하세요
";