IT/PHP

[PHP] PHP 이용한 텍스트파일(txt, ini 등등) 읽기

월공 2020. 10. 29. 09:22
728x90
300x250

정말 신기하게도 요즘 세상에 DB를 쓰지 않고 개발할 기회가 왔다

나름 색다른 경험이었다

여튼 메모장 txt or ini 확장자 파일을 DB 겸해서 사용했는데 기록남겨둔다.

 

참고로 info.ini 파일은 아래와 같이 내용이 들어가있다

 

idx|아이디|비밀번호

1|test1|1234

2|test2|1234

 

//아이디와 패스워드를 받아옴
$user_id 	= $_GET["user_id"];
$user_pass 	= $_GET["user_pass"];

//info.ini 파일 내용을 result 라는 배열에 한줄한줄씩 박음
$result = array(); 
$lines = @file("./info.ini") or $result = "파일을 읽을 수 없습니다."; 

if ($lines != null){ 
	for($i = 1;$i < count($lines);$i++){
		//$result[] .= ($i + 1) . ": " . $lines[$i] . "<br>";
		array_push($result, $lines[$i]);
	}
}

// 메모장 내용 한줄한줄씩 마다 매칭 시킴
for($i = 0;$i < count($result);$i++){
	// | 로 잘라서 매칭확인
	$member_arr = explode('|', $result[$i]);
	
	//아이디 , 비밀번호 매칭 되는지 여부체크
	if($user_id == $member_arr[1] && $user_pass == $member_arr[2]){			
		
		$memberseq 	= $member_arr[0];	//idx
		$userId 	= $member_arr[1];	//아이디
		$userPass 	= $member_arr[2];   //비밀번호
		
        // 매칭되면 바로 break 로 for 문 빠져나옴
		break;

	}else{
		continue;
	}
}

PHP를 이용한 파일에 내용 추가하기

//PHP를 이용한 파일에 내용 추가하기

//추가할 내용 데이터 형식에 맞게 조정
$data = $i."|".$user_id."|".$user_pass;

//파일 읽어오기
$filepath = "./info.ini";

//content 라는 변수에 파일 내용 넣어주기
$content = file_get_contents($filepath);

//content2 라는 변수에 기존 content 와 한줄 띄우고 추가할 내용 data 추가
$content2 = trim($content)."\n".$data;

//파일 내용을 content2 로 대체
file_put_contents($filepath, $content2);

그냥 메모장 열어서 한줄띡 추가하고 끝나는게 아니라 전체 내용을 갖고와서 해당 내용을 붙이고 갈아끼우는 느낌이다

 


PHP를 이용한 파일 내용 수정하기

//파일 열어오고 내용 배열 ini 에 담기
$filepath = "./info.ini";
$ini = file($filepath); 

//메모장 1라인은 배열0 , 예) info.ini 2번째라인
// | 로 잘라서 해당 줄의 idx, 아이디, 비밀번호 가져옴
$member_arr = explode('|', $ini[1]);
         // idx              아이디              비밀번호
$data = $member_arr[0]."|".$member_arr[1]."|".$user_pass1;

//파일 내용 가져옴
$content = file_get_contents($filepath);

//2번째라인을 $data 로 바꿔준 내용을 newcontent 로 선언
$newcontent = str_replace($ini[1], $data, $content);

//파일 내용 newcontent 로 대체
file_put_contents($filepath, $newcontent);

 

DB 없이 로직 짜는게 처음엔 뻘짓이란 생각이 들었는데 그래도 이번에 DB를 안씀으로써 php 로 파일 읽는것도 이번에 써봐서 재밌었다 그리고 DB의 소중함을 다시금 느끼게된 미니 프로젝트 ..

 

728x90
300x250