티스토리 뷰
반응형
실전에서 사용한 아래는 www/output/json 폴더의 오늘 이전 날짜의 JSON 파일을 삭제하는 PHP 코드입니다.
<?php
// JSON 파일이 저장된 폴더 경로
$folderPath = __DIR__ . '/www/output/json';
// 오늘 날짜 구하기
$today = date('Y-m-d');
// 폴더 열기
if (is_dir($folderPath)) {
if ($dh = opendir($folderPath)) {
while (($file = readdir($dh)) !== false) {
$filePath = $folderPath . '/' . $file;
// 파일인지 확인 및 확장자가 .json인지 확인
if (is_file($filePath) && pathinfo($file, PATHINFO_EXTENSION) === 'json') {
// 파일 수정 시간 가져오기
$fileModifiedTime = date('Y-m-d', filemtime($filePath));
// 파일 수정 날짜가 오늘 이전인지 확인
if ($fileModifiedTime < $today) {
// 파일 삭제
unlink($filePath);
}
}
}
closedir($dh);
}
} else {
echo "폴더가 존재하지 않습니다.";
}
?>

코드 설명
- __DIR__를 사용하여 현재 파일의 위치 기준으로 www/output/json 경로를 설정합니다.
- date('Y-m-d')를 사용해 오늘 날짜를 가져옵니다.
- opendir와 readdir를 이용해 폴더 내의 파일을 순회합니다.
- 각 파일에 대해:
- 확장자가 .json인지 확인.
- filemtime()로 파일의 마지막 수정 시간을 확인하고 오늘 날짜와 비교.
- 오늘 이전의 파일은 unlink()를 통해 삭제합니다.
주의사항
- 스크립트를 실행하기 전에 중요한 파일이 없도록 확인하세요.
- 권한 문제로 파일 삭제가 안 될 수 있으니, 폴더와 파일에 적절한 권한을 설정하세요. (chmod 명령 사용 가능)
권한문제를 해결하면서 처리하는 코드는 아래와 같아요~
아래는 권한 문제를 방지하기 위해 JSON 파일의 권한을 설정한 후, 오늘 이전의 파일을 삭제하는 PHP 코드입니다.
<?php
// JSON 파일이 저장된 폴더 경로
$folderPath = __DIR__ . '/www/output/json';
// 오늘 날짜 구하기
$today = date('Y-m-d');
// 폴더가 존재하는지 확인
if (is_dir($folderPath)) {
if ($dh = opendir($folderPath)) {
while (($file = readdir($dh)) !== false) {
$filePath = $folderPath . '/' . $file;
// 파일인지 확인 및 확장자가 .json인지 확인
if (is_file($filePath) && pathinfo($file, PATHINFO_EXTENSION) === 'json') {
// 파일의 권한 설정 (읽기, 쓰기, 삭제 가능)
chmod($filePath, 0666); // rw-rw-rw-
// 파일 수정 시간 가져오기
$fileModifiedTime = date('Y-m-d', filemtime($filePath));
// 파일 수정 날짜가 오늘 이전인지 확인
if ($fileModifiedTime < $today) {
// 파일 삭제
if (unlink($filePath)) {
echo "파일 삭제 성공: $filePath\n";
} else {
echo "파일 삭제 실패: $filePath\n";
}
}
}
}
closedir($dh);
}
} else {
echo "폴더가 존재하지 않습니다.";
}
// 폴더의 권한도 수정 (쓰기 가능하도록 설정)
chmod($folderPath, 0777); // rwxrwxrwx
?>
추가 설명
- 파일 권한 설정 (chmod):
- 각 파일에 대해 chmod($filePath, 0666)을 호출하여 읽기/쓰기/삭제가 가능하도록 설정합니다.
- 0666: 모든 사용자에 대해 읽기/쓰기 가능, 실행 권한 없음.
- 폴더 권한 설정:
- 폴더 자체에도 쓰기 권한이 필요할 경우 chmod($folderPath, 0777)을 추가하여 읽기/쓰기/실행 가능하도록 설정합니다.
- 0777: 모든 사용자에 대해 읽기/쓰기/실행 가능.
- 삭제 성공 여부 확인:
- unlink()의 반환값을 체크하여 삭제 성공 여부를 출력합니다.
- 보안 고려:
- 0777과 같은 권한은 보안에 취약할 수 있으니 필요할 경우 사용하고, 작업 후 더 제한적인 권한으로 변경하세요 (chmod($folderPath, 0755) 등).
실행 전에 확인
- PHP 스크립트가 실행되는 환경에서 폴더 및 파일이 PHP 프로세스에 의해 읽기 및 쓰기 가능한 상태인지 확인하세요.
- 권한을 설정해도 서버 설정이나 파일 소유자 제한이 있을 경우 문제가 발생할 수 있습니다. 이 경우 시스템 관리자와 상의하세요.
반응형
'IT tech Coding > php' 카테고리의 다른 글
[php] array_filter의 강력한 기능, 배열의 정리정돈 (0) | 2024.11.30 |
---|---|
PHP에서 정규식을 사용하여 데이터 가공하기: 초보자를 위한 친절한 안내서 (0) | 2024.11.28 |
while($row = $stmh->fetch(PDO::FETCH_ASSOC)) { 이 코드가 두번째는 실행이 안되는 이유는? (0) | 2024.11.25 |
서버의 www 폴더에 .htaccess 어떤 내용으로 세션시간을 늘리는가? (0) | 2024.11.04 |
ajax로 서버에 저장할때 자료의 삽입시 마지막 레코드 번호 가져오기 $num = $pdo->lastInsertId(); (0) | 2024.09.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트 코드 기본지식
- #데이터무결성
- #tuigrid #자바스크립트그리드 #행삽입 #행삭제 #웹개발팁 #프론트엔드개발 #javascriptgrid #데이터테이블 #ui개선 #그리드커스터마이징
- #동적ui
- 오토핫키가이드
- #카테고리트리
- json파일형태보기
- 엑셀입력보호
- 효율적코딩방법
- #계층형데이터
- #트리구조
- #php에러해결 #php경고메시지 #nonwellformednumeric #php초보자팁 #웹개발에러 #프로그래밍디버깅 #php정규식 #코드디버깅팁 #웹개발문제해결 #php숫자형변환
- 웹제작강의안2주차
- 구글드라이브API
- Bootstrap 5
- #textarea #자동높이조절 #ux개선 #웹개발 #프론트엔드 #자바스크립트 #html팁 #웹디자인 #uiux #코딩팁
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 티스토리챌린지
- 캐드자동작도
- ajax오류메시지
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- General error: 2031
- 도면자동생성
- 오블완
- json파일편하게보는법
- #데이터베이스설계
- isset을 적용해야 하는 이유
- 엑셀보호
- #웹개발
- 엑셀셀보호
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함