파일이나 디렉토리에 대한 경로를 포함하는 문자열이 주어지면 이 함수는 후행 이름 구성요소를 반환합니다.
basename() 은 로케일을 인식하므로 멀티바이트 문자 경로가 있는 올바른 기본 이름을 보려면 setlocale() 함수를 사용하여 일치하는 로케일을 설정해야 합니다. path현재 로케일에 유효하지 않은 문자가 포함되어있으면 basename() 의 동작 이 정의되지 않습니다.
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)
*/
정규화된 절대 경로 이름을 반환 합니다. 성공 시 정규화된 절대 경로 이름을 반환합니다. 결과 경로에는 기호 링크 /./, /../ 또는 extra /구성 요소가 없습니다. \및 /와 같은 후행 구분 기호도 제거됩니다.
실행 중인 스크립트에는 계층 구조의 모든 디렉토리에 대한 실행 권한이 있어야 합니다. 그렇지 않으면 realpath()가 false를 반환 합니다.
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
/* 출력결과:
/etc/passwd
/tmp
*/
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
/* 실행 결과
C:\WINDOWS\System32
C:\Program Files
*/
파일 경로에 대한 정보를 반환합니다. 현재 경로 정보 검색에 대한 정보는 사전 정의된 예약 변수 섹션을 참조하세요.
※ pathinfo() 는 로케일을 인식하므로 멀티바이트 문자가 포함된 경로를 올바르게 구문 분석하려면 setlocale() 함수를 사용하여 일치하는 로케일을 설정해야 합니다.
$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
*/
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
*/
전달된 $filename 항목이 지정된 $pattern이 일치하는지 판별합니다. (패턴에 대해 파일 이름 일치 여부 체크)
사실 fnmatch보다는 결국 정규표현식을 활용해 체크하는게 일반적인 방법 입니다.
$from에 파일 $to를 복사 합니다. 파일을 이동하려면 rename() 함수를 사용하세요!
※ 대상 파일이 이미 있는 경우 덮어씁니다.
move_uploaded_file() - 업로드된 파일을 새 위치로 이동합니다.
rename() - 파일 또는 디렉토리의 이름을 바꿉니다.
$directory에 의해 지정된 디렉토리 생성을 시도합니다.
is_dir() - 파일 이름이 디렉토리인지 여부를 알려줍니다.
$directory에 의해 명명된 디렉토리를 제거하려고 시도합니다. 디렉토리는 비어 있어야 하며 관련 권한이 이를 허용해야 합니다.
$filename을 삭제 합니다. Unix C unlink() 함수와 유사합니다.
파일 또는 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 목록 및 설명
전체 파일을 문자열로 읽습니다. 이 함수는 file_get_contents() 가 지정된 최대 바이트에서 시작하여 문자열로 파일을 반환 한다는 점을 제외하면 file() 과 유사합니다.
※ 공백과 같은 특수 문자가 있는 URI를 여는 경우 urlencode() 를 사용하여 URI를 인코딩해야 합니다 .
전체 파일을 배열로 반환해 줍니다.
라인별로 각 index key마다 담기게 되는데 $flags 옵션을 통해 빈 라인은 제외할 수도 있습니다.
파일을 출력합니다.
$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;
}
파일 포인터에서 한 줄을 가져옵니다.
$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);
}
파일 포인터에서 파일 끝을 테스트합니다. 파일의 끝인지 알아보고 끝이 아니면 다음 라인을 가져올 때 체크용으로 사용합니다.
파일 포인터를 찾거나 설정합니다.
$whence값은 다음과 같습니다.
SEEK_SET- 위치를 offset바이트와 동일하게 설정합니다.
SEEK_CUR- 위치를 현재 위치 플러스로 설정 offset합니다.
SEEK_END- 위치를 파일 끝 플러스로 설정합니다 offset.
$fp = fopen('somefile.txt', 'r');
$data = fgets($fp, 4096);
fseek($fp, 0);
파일 읽기/쓰기 포인터의 현재 위치를 반환합니다.
data = fgets(fp); // 11
fclose($fp);
rewind() - 파일 포인터의 위치를 되감습니다.
파일 포인터의 위치를 초기화합니다.
파일 포인터에 남아 있는 모든 데이터 출력
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
파일 스트림에 데이터를 씁니다.
파일에 데이터를 쓰는 함수로, fopen() , fwrite() 및 fclose() 를 연속적으로 호출하여 파일에 데이터를 쓰는 것과 동일합니다.
이 함수는 버퍼링된 모든 출력을 파일이 가리키는 리소스에 강제로 기록합니다
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
파일을 주어진 길이로 자릅니다.
열려 있는 파일 포인터를 닫습니다.
fclose($handle);
열린 파일 포인터를 사용하여 파일에 대한 정보를 가져 옵니다.
fstat()과 달리 파일 경로를 통해 파일에 대한 정보를 가져옵니다.
하드 링크를 생성합니다.
심볼릭 링크를 생성합니다.
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의 별칭