PHP 에서 파일 의 확장 속성 을 조작 합 니 다.

운영 체제 의 파일 에는 우리 가 정의 할 수 있 는 파일 속성 이 존재 합 니 다.이 속성 들 은 파일 내용 에 저장 되 는 것 도 아니 고 ls-al 을 통 해 직접 볼 수 있 는 내용 도 아니다.키 값 을 파일 에 영구적 으로 연결 할 수 있 습 니 다.일반적으로 현재 Linux 시스템 은 이러한 파일 확장 속성 기능 을 지원 합 니 다.운영 체제 에서 우 리 는 setfattr,getfattr,attr 등 명령 을 통 해 그것들 을 조작 할 수 있다.물론 PHP 도 파일 의 확장 속성 을 조작 할 수 있 는 확장 자 를 제공 합 니 다.
확장 속성 추가

$file = __FILE__;

var_dump(xattr_set($file, 'Author', 'ZyBlog')); // bool(true)
var_dump(xattr_set($file, 'Num.', 121 )); // bool(true)
var_dump(xattr_set($file, 'Description', 'shuo ming', XATTR_ROOT)); // bool(true)
우선 우 리 는 조작 한 파일 을 정 의 했 습 니 다.여기 서 우 리 는 직접 을 사용 합 니 다.FILE__ 현재 우리 가 테스트 하고 있 는 이 phop 파일 을 마술 상수 로 조작 합 니 다.그리고 xattr 사용set()는 파일 의 확장 속성 을 설정 할 수 있 습 니 다.파일 의 확장 속성 은 네 임 스페이스 라 는 개념 이 있 습 니 다.PHP 에서 도 일반(user)네 임 스페이스 와 XATTR 을 제공 합 니 다.ROOT(root 명령 공간)두 가지 형식.루트 네 임 스페이스 의 속성 은 슈퍼 사용자 가 설정 할 수 있 습 니 다.다른 사용자 에 게 보이 지 않 습 니 다.user 네 임 스페이스 는 파일 의 권한 에 따라 정 의 됩 니 다.즉,현재 이 파일 을 조작 할 수 있 는 사용 자 는 이 파일 의 user 네 임 스페이스 가 설정 한 확장 속성 을 읽 을 수 있 습 니 다.
확장 속성 목록 보기

var_dump(xattr_list($file, XATTR_ROOT));
// array(1) {
//     [0]=>
//     string(11) "Description"
//   }

var_dump(xattr_list($file));
// array(2) {
//     [0]=>
//     string(4) "Num."
//     [1]=>
//     string(6) "Author"
//   }
xattr_list()함 수 는 파일 이 정의 하 는 모든 네 임 스페이스 의 키 를 가 져 올 수 있 습 니 다.그것 도 user 와 root 네 임 스페이스 를 구분 합 니 다.
확장 속성 내용 획득

var_dump(xattr_get($file, 'Author')); // string(6) "ZyBlog"
var_dump(xattr_get($file, 'Description')); // bool(false)
var_dump(xattr_get($file, 'Description', XATTR_ROOT)); // string(9) "shuo ming"
xattr_get()함 수 는 지정 한 키 의 확장 속성 내용 을 얻 는 데 사 용 됩 니 다.위의 xattr 에 맞 춰list()함 수 는 특정한 파일 의 모든 확장 속성 정 보 를 얻 을 수 있 습 니 다.하면,만약,만약...ROOT 인 자 는 루트 네 임 스페이스 의 내용 을 읽 을 수 없습니다.
확장 속성 삭제

var_dump(xattr_remove($file, 'Num.')); // bool(true)
var_dump(xattr_list($file));
// array(1) {
//     [0]=>
//     string(6) "Author"
//   }
xattr_reove()는 파일 의 확장 속성 을 삭제 하 는 데 사 용 됩 니 다.테스트 파일 의 user 네 임 스페이스 의 Num 속성 을 직접 삭 제 했 습 니 다.다시 보기 xattrlist()는 Author 만 남 았 습 니 다.마찬가지 로 이 함수 도 루트 네 임 스페이스 여 부 를 지정 하 는 세 번 째 매개 변 수 를 지원 합 니 다.
시스템 이 확장 속성 작업 을 지원 하 는 지 검증 합 니 다.

var_dump(xattr_supported($file)); // bool(true)
마지막 으로 xattrsupported()함 수 는 현재 운영 체제 의 파일 시스템 이 xattr 와 관련 된 작업 을 지원 하 는 지 검증 하 는 데 사 용 됩 니 다.
총결산
오늘 의 내용 은 매우 간단 하고 간단명료 합 니 다.이 파일 의 확장 속성 기능 은 솔직히 PHP 에 이 기능 이 있 는 것 을 보고 리 눅 스 시스템 의 관련 문 서 를 보 았 습 니 다.그래서 공 부 는 모두 관련 된 것 이다.우리 가 PHP 를 공부 할 때 리 눅 스 도 공부 하 는 동시에 MySQL,Nginx 등 응용 에 관 한 지식 도 자주 접 할 수 있다.한 분야 에 집중 하고 다른 분야 의 지식 을 넓 히 는 것 이 야 말로 학습 의 가장 좋 은 방법 이다.
테스트 코드:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/9.PHP 에서 파일 의 확장 속성 을 조작 합 니 다.php
참고 문서:
https://www.php.net/manual/zh/book.xattr.php
PHP 에서 파일 을 조작 하 는 확장 속성 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 phop 확장 속성 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기