티스토리 뷰
basename(string $path, string $suffix = ""): string
파일이나 디렉토리에 대한 경로를 포함하는 문자열이 주어지면 이 함수는 후행 이름 구성요소를 반환합니다.
basename() 은 로케일을 인식하므로 멀티바이트 문자 경로가 있는 올바른 기본 이름을 보려면 setlocale() 함수를 사용하여 일치하는 로케일을 설정해야 합니다. path현재 로케일에 유효하지 않은 문자가 포함되어있으면 basename() 의 동작 이 정의되지 않습니다.
- dirname() - 상위 디렉토리의 경로를 반환합니다.
- pathinfo() - 파일 경로에 대한 정보를 반환합니다.
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
/* result to:
1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)
*/
realpath(string $path): string|false
정규화된 절대 경로 이름을 반환 합니다. 성공 시 정규화된 절대 경로 이름을 반환합니다. 결과 경로에는 기호 링크 /./, /../ 또는 extra /구성 요소가 없습니다. \및 /와 같은 후행 구분 기호도 제거됩니다.
실행 중인 스크립트에는 계층 구조의 모든 디렉토리에 대한 실행 권한이 있어야 합니다. 그렇지 않으면 realpath()가 false를 반환 합니다.
예제 #1
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
/* 출력결과:
/etc/passwd
/tmp
*/
예제 #2. Windows의 realpath()
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
/* 실행 결과
C:\WINDOWS\System32
C:\Program Files
*/
pathinfo(string $path, int $flags = PATHINFO_ALL): array|string
파일 경로에 대한 정보를 반환합니다. 현재 경로 정보 검색에 대한 정보는 사전 정의된 예약 변수 섹션을 참조하세요.
※ pathinfo() 는 로케일을 인식하므로 멀티바이트 문자가 포함된 경로를 올바르게 구문 분석하려면 setlocale() 함수를 사용하여 일치하는 로케일을 설정해야 합니다.
예제 #1 pathinfo() 기본 사용
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
/* output:
/www/htdocs/inc
lib.inc.php
php
lib.inc
*/
glob(string $pattern, int $flags = 0): array|false
libc glob() 함수에서 사용하는 규칙에 따라 pattern에 일치하는 모든 경로 이름을 검색합니다. 이는 일반적인 셸에서 사용하는 규칙과 유사합니다.
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
/* result to:
funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820
*/
fnmatch(string $pattern, string $filename, int $flags = 0): bool
전달된 $filename 항목이 지정된 $pattern이 일치하는지 판별합니다. (패턴에 대해 파일 이름 일치 여부 체크)
사실 fnmatch보다는 결국 정규표현식을 활용해 체크하는게 일반적인 방법 입니다.
copy(string $from, string $to, ?resource $context = null): bool
$from에 파일 $to를 복사 합니다. 파일을 이동하려면 rename() 함수를 사용하세요!
※ 대상 파일이 이미 있는 경우 덮어씁니다.
- move_uploaded_file() - 업로드된 파일을 새 위치로 이동합니다.
- rename() - 파일 또는 디렉토리의 이름을 바꿉니다.
mkdir(string $directory, int $permissions = 0777, bool $recursive = false, ?resource $context = null): bool
$directory에 의해 지정된 디렉토리 생성을 시도합니다.
- is_dir() - 파일 이름이 디렉토리인지 여부를 알려줍니다.
rmdir(string $directory, ?resource $context = null): bool
$directory에 의해 명명된 디렉토리를 제거하려고 시도합니다. 디렉토리는 비어 있어야 하며 관련 권한이 이를 허용해야 합니다.
unlink(string $filename, ?resource $context = null): bool
$filename을 삭제 합니다. Unix C unlink() 함수와 유사합니다.
fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
): resource|false
파일 또는 URL을 엽니다.
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
fopen()의 사용 가능한 $mode 목록 및 설명
'r' | 읽기 전용으로 엽니다. 파일 시작 부분에 파일 포인터를 놓습니다. |
'r+' | 읽기와 쓰기를 위해 열려 있습니다. 파일 시작 부분에 파일 포인터를 놓습니다. |
'w' | 쓰기 전용으로 엽니다. 파일 포인터를 파일 시작 부분에 놓고 파일을 0 길이로 자릅니다. 파일이 존재하지 않으면 생성을 시도하십시오. |
'w+' | 읽기와 쓰기를 위해 열려 있습니다. 그렇지 않으면 와 같은 동작을 'w'합니다. |
'a' | 쓰기 전용으로 엽니다. 파일 끝에 파일 포인터를 놓습니다. 파일이 존재하지 않으면 생성을 시도하십시오. 이 모드에서 fseek() 는 아무 효과가 없으며 쓰기는 항상 추가됩니다. |
'a+' | 읽기와 쓰기를 위해 열려 있습니다. 파일 끝에 파일 포인터를 놓습니다. 파일이 존재하지 않으면 생성을 시도하십시오. 이 모드에서 fseek() 는 읽기 위치에만 영향을 미치고 쓰기는 항상 추가됩니다. |
'x' | 쓰기 전용으로 만들고 엽니다. 파일 시작 부분에 파일 포인터를 놓습니다. 파일이 이미 존재하는 경우 fopen() 호출은 level 의 오류를 반환 false하고 생성하여 실패합니다 E_WARNING. 파일이 존재하지 않으면 생성을 시도하십시오. 이것은 기본 시스템 호출 O_EXCL|O_CREAT에 대한 플래그 를 지정하는 것과 같습니다.open(2) |
'x+' | 읽고 쓰기 위해 만들고 엽니다. 그렇지 않으면 와 같은 동작을 'x'합니다. |
'c' | 쓰기 전용으로 파일을 엽니다. 파일이 없으면 생성됩니다. 존재하는 경우 잘리거나( 와 반대 'w') 이 함수에 대한 호출이 실패하지 않습니다( 의 경우처럼 'x'). 파일 포인터는 파일의 시작 부분에 위치합니다. 파일 수정을 시도하기 전에 권고 잠금을 원하는 경우 유용할 'w'수 있습니다 . 잠금이 요청됨). |
'c+' | 읽고 쓰기 위해 파일을 엽니다. 그렇지 않으면 와 같은 동작을 'c'합니다. |
'e' | 열린 파일 설명자에 close-on-exec 플래그를 설정합니다. POSIX.1-2008 준수 시스템에서 컴파일된 PHP에서만 사용할 수 있습니다. |
file_get_contents(
string $filename,
bool $use_include_path = false,
?resource $context = null,
int $offset = 0,
?int $length = null
): string|false
전체 파일을 문자열로 읽습니다. 이 함수는 file_get_contents() 가 지정된 최대 바이트에서 시작하여 문자열로 파일을 반환 한다는 점을 제외하면 file() 과 유사합니다.
※ 공백과 같은 특수 문자가 있는 URI를 여는 경우 urlencode() 를 사용하여 URI를 인코딩해야 합니다 .
file(string $filename, int $flags = 0, ?resource $context = null): array|false
전체 파일을 배열로 반환해 줍니다.
* file_get_contents() 를 사용하여 파일의 내용을 문자열로 반환 할 수 있습니다 .
라인별로 각 index key마다 담기게 되는데 $flags 옵션을 통해 빈 라인은 제외할 수도 있습니다.
readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false
파일을 출력합니다.
예제 #1 readfile()을 사용하여 강제 다운로드
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
fgets(resource $stream, ?int $length = null): string|false
파일 포인터에서 한 줄을 가져옵니다.
예제 #1. 파일을 한 줄씩 읽기
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer;
}
if (!feof($fp)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($fp);
}
feof(resource $stream): bool
파일 포인터에서 파일 끝을 테스트합니다. 파일의 끝인지 알아보고 끝이 아니면 다음 라인을 가져올 때 체크용으로 사용합니다.
fseek(resource $stream, int $offset, int $whence = SEEK_SET): int
파일 포인터를 찾거나 설정합니다.
$whence값은 다음과 같습니다.
- SEEK_SET- 위치를 offset바이트와 동일하게 설정합니다.
- SEEK_CUR- 위치를 현재 위치 플러스로 설정 offset합니다.
- SEEK_END- 위치를 파일 끝 플러스로 설정합니다 offset.
$fp = fopen('somefile.txt', 'r');
$data = fgets($fp, 4096);
fseek($fp, 0);
ftell(resource $stream): int|false
파일 읽기/쓰기 포인터의 현재 위치를 반환합니다.
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);
echo ftell($fp); // 11
fclose($fp);
- rewind() - 파일 포인터의 위치를 되감습니다.
rewind(resource $stream): bool
파일 포인터의 위치를 초기화합니다.
fpassthru(resource $stream): int
파일 포인터에 남아 있는 모든 데이터 출력
fread(resource $stream, int $length): string|false
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
fwrite(resource $stream, string $data, ?int $length = null): int|false
파일 스트림에 데이터를 씁니다.
file_put_contents( string $filename, mixed $data, int $flags = 0, ?resource $context = null ): int|false
파일에 데이터를 쓰는 함수로, fopen() , fwrite() 및 fclose() 를 연속적으로 호출하여 파일에 데이터를 쓰는 것과 동일합니다.
fflush(resource $stream): bool
이 함수는 버퍼링된 모든 출력을 파일이 가리키는 리소스에 강제로 기록합니다
예제 #1 fflush() 를 사용한 파일 쓰기 예제
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
ftruncate(resource $stream, int $size): bool
파일을 주어진 길이로 자릅니다.
fclose(resource $stream): bool
열려 있는 파일 포인터를 닫습니다.
$handle = fopen('somefile.txt', 'r');
fclose($handle);
fstat(resource $stream): array|false
열린 파일 포인터를 사용하여 파일에 대한 정보를 가져 옵니다.
stat(string $filename): array|false
fstat()과 달리 파일 경로를 통해 파일에 대한 정보를 가져옵니다.
link(string $target, string $link): bool
하드 링크를 생성합니다.
symlink(string $target, string $link): bool
심볼릭 링크를 생성합니다.
- link() - 하드 링크 생성
- readlink() - 심볼릭 링크의 대상을 반환합니다. (원본)
- linkinfo() - 링크에 대한 정보를 가져 옵니다.
- unlink() - 파일 삭제
파일 개별 정보 가져오기
- fileatime — 파일의 마지막 액세스 시간을 가져 옵니다.
- filectime — 파일의 inode 변경 시간을 가져 옵니다.
- filegroup — 파일 그룹을 가져 옵니다.
- fileinode — 파일 inode를 가져 옵니다.
- filemtime — 파일 수정 시간을 가져 옵니다.
- fileowner — 파일 소유자 가져 오기
- fileperms — 파일 권한 을 얻습니다.
- filesize — 파일 크기 가져 오기
- filetype — 파일 형식 가져 오기
기본 검증
- is_dir — 파일 이름이 디렉토리인지 여부를 알려줍니다.
- is_file — 파일 이름이 일반 파일인지 여부를 알려줍니다.
- is_link — 파일 이름이 심볼릭 링크인지 여부를 알려줍니다.
- is_executable — 파일 이름이 실행 가능한지 여부를 알려줍니다.
- is_readable — 파일이 존재하고 읽을 수 있는지 여부를 알려줍니다.
- is_uploaded_file — 파일이 HTTP POST를 통해 업로드되었는지 여부를 알려줍니다.
- is_writable — 파일 이름이 쓰기 가능한지 여부를 알려줍니다.
- is_writeable — is_writable의 별칭
Filesystem
- Predefined Constants
- Filesystem Functions
- basename — 경로의 후행 이름 구성요소를 반환합니다.
- chgrp — 파일 그룹 변경
- chmod — 파일 모드 변경
- chown — 파일 소유자 변경
- clearstatcache — 파일 상태 캐시를 지웁니다.
- copy — 파일을 복사합니다.
- delete — 연결 해제 또는 설정 해제 참조
- dirname — 상위 디렉토리의 경로를 반환합니다.
- disk_free_space — 파일 시스템 또는 디스크 파티션에서 사용 가능한 공간을 반환합니다.
- disk_total_space — 파일 시스템 또는 디스크 파티션의 전체 크기를 반환합니다.
- diskfreespace — disk_free_space의 별칭
- fclose — 열려 있는 파일 포인터를 닫습니다.
- fdatasync — 데이터(메타 데이터 제외)를 파일에 동기화합니다.
- feof — 파일 포인터에서 파일 끝 테스트
- fflush — 출력을 파일로 플러시합니다.
- fgetc — 파일 포인터에서 문자 가져오기
- fgetcsv — 파일 포인터에서 행을 가져오고 CSV 필드에 대한 구문 분석
- fgets — 파일 포인터에서 라인 가져오기
- fgetss — 파일 포인터에서 줄을 가져오고 HTML 태그를 제거합니다.
- file_exists — 파일이나 디렉토리가 존재하는지 확인
- file_get_contents — 전체 파일을 문자열로 읽습니다.
- file_put_contents — 파일에 데이터 쓰기
- file — 전체 파일을 배열로 읽습니다.
- fileatime — 파일의 마지막 액세스 시간을 가져 옵니다.
- filectime — 파일의 inode 변경 시간을 가져 옵니다.
- filegroup — 파일 그룹을 가져 옵니다.
- fileinode — 파일 inode를 가져 옵니다.
- filemtime — 파일 수정 시간을 가져 옵니다.
- fileowner — 파일 소유자 가져 오기
- fileperms — 파일 권한 을 얻습니다.
- filesize — 파일 크기 가져 오기
- filetype — 파일 형식 가져 오기
- flock — 이동 가능한 자문 파일 잠금
- fnmatch — 패턴에 대해 파일 이름 일치
- fopen — 파일 또는 URL을 엽니 다.
- fpassthru — 파일 포인터에 남아 있는 모든 데이터 출력
- fputcsv — 행을 CSV로 형식화하고 파일 포인터에 쓰기
- fputs — fwrite의 별칭
- fread — 바이너리 안전 파일 읽기
- fscanf — 형식에 따라 파일의 입력을 구문 분석합니다.
- fseek — 파일 포인터 찾기
- fstat — 열린 파일 포인터를 사용하여 파일에 대한 정보를 가져 옵니다.
- fsync — 파일의 변경 사항을 동기화합니다(메타 데이터 포함).
- ftell — 파일 읽기/쓰기 포인터의 현재 위치를 반환합니다.
- ftruncate — 파일을 주어진 길이로 자릅니다.
- fwrite — 이진 안전 파일 쓰기
- glob — 패턴과 일치하는 경로 이름 찾기
- is_dir — 파일 이름이 디렉토리인지 여부를 알려줍니다.
- is_executable — 파일 이름이 실행 가능한지 여부를 알려줍니다.
- is_file — 파일 이름이 일반 파일인지 여부를 알려줍니다.
- is_link — 파일 이름이 심볼릭 링크인지 여부를 알려줍니다.
- is_readable — 파일이 존재하고 읽을 수 있는지 여부를 알려줍니다.
- is_uploaded_file — 파일이 HTTP POST를 통해 업로드되었는지 여부를 알려줍니다.
- is_writable — 파일 이름이 쓰기 가능한지 여부를 알려줍니다.
- is_writeable — is_writable의 별칭
- lchgrp — 심볼릭 링크의 그룹 소유권 변경
- lchown — symlink의 사용자 소유권 변경
- link — 하드 링크 만들기
- linkinfo — 링크에 대한 정보를 가져 옵니다.
- lstat — 파일 또는 심볼릭 링크에 대한 정보 제공
- mkdir — 디렉토리를 만듭니다.
- move_uploaded_file — 업로드된 파일을 새 위치로 이동합니다.
- parse_ini_file — 구성 파일 구문 분석
- parse_ini_string — 구성 문자열 구문 분석
- pathinfo — 파일 경로에 대한 정보를 반환합니다.
- pclose — 프로세스 파일 포인터를 닫습니다.
- popen — 프로세스 파일 포인터를 엽니 다.
- readfile — 파일을 출력합니다.
- readlink — 심볼릭 링크의 대상을 반환합니다.
- realpath_cache_get — 실제 경로 캐시 항목 가져오기
- realpath_cache_size — 실제 경로 캐시 크기 가져오기
- realpath — 정규화된 절대 경로 이름을 반환 합니다.
- rename — 파일 또는 디렉터리의 이름을 바꿉니다.
- rewind — 파일 포인터의 위치를 되감습니다.
- rmdir — 디렉토리 제거
- set_file_buffer — stream_set_write_buffer의 별칭
- stat — 파일에 대한 정보 제공
- symlink — 심볼릭 링크를 생성합니다.
- tempnam — 고유한 파일 이름으로 파일 생성
- tmpfile — 임시 파일을 생성합니다.
- touch — 파일의 액세스 및 수정 시간 설정
- umask — 현재 umask를 변경합니다.
- unlink — 파일을 삭제합니다.
'오늘도 개발자 > PHP' 카테고리의 다른 글
[PHP]Output Buffering Control (0) | 2022.01.30 |
---|---|
[PHP] 스트림(Streams) (0) | 2022.01.30 |
[PHP] 디렉토리 제어(Directories) (0) | 2022.01.29 |
[PHP] JSON (JavaScript Object Notation) (0) | 2022.01.29 |
[PHP] cURL (0) | 2022.01.29 |
- Total
- Today
- Yesterday
- 한빛미디어
- 고흐1인칭시점
- 워드프레스
- ontent
- URL디코딩
- 썸머노트
- wordpress #워드프레스 #url
- Lighitsail
- 지대공
- 11번가 아마존 #우주패스 #우주쓰레기
- 철거
- 라이트세일
- MySQL
- FTP권한문제
- Theme Customization
- 빛의성당
- 스프레드연산자
- 코스모스팜
- url복사
- 이사
- 빈화면
- 도스 코파스
- 이전설치
- 사용자정의하기
- CSPRNG
- Sanitize
- URL인코딩
- php
- WordPress
- wp-members
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |