PHP is_link() 함수란?
is_link() 함수는 지정한 파일이 심볼릭 링크(symbolic link)인지 여부를 확인하는 PHP 내장 함수입니다. 파일이 존재하면서 동시에 심볼릭 링크라면 TRUE를 반환하고, 파일이 존재하지 않거나 일반 파일·디렉터리이거나 확인에 실패한 경우에는 FALSE를 반환합니다.
문법(Syntax)
is_link(file_path)
매개변수(Parameters)
file_path − 심볼릭 링크 여부를 검사할 대상 파일의 경로를 나타냅니다.
반환 값(Return Value)
TRUE — 파일이 존재하고 해당 파일이 심볼릭 링크인 경우
FALSE — 파일이 존재하지 않거나 심볼릭 링크가 아니거나, 검사에 실패한 경우
사용 예제 1
<?php
$mylink = "new";
if(is_link($mylink)) {
echo ("link");
} else {
echo ("not a link");
}
?>
출력 결과
not a link
위 예제에서 "new"라는 경로가 심볼릭 링크가 아니므로 "not a link"가 출력됩니다.
이번에는 다른 예제를 살펴보겠습니다.
사용 예제 2
<?php
$mylink = "documents";
if(is_link($mylink)) {
echo ("link");
} else {
echo ("not a link");
}
?>
출력 결과
not a link
"documents" 역시 심볼릭 링크가 아니기 때문에 같은 결과가 출력됩니다. 만약 해당 경로가 실제 심볼릭 링크라면 "link"가 출력됩니다.
참고 사항
PHP는 파일 관련 함수들의 결과를 캐싱하기 때문에, symlink() 등으로 링크를 생성하거나 삭제한 직후 is_link()를 호출할 경우 이전 상태가 반환될 수 있습니다. 이럴 때는 clearstatcache() 함수를 먼저 호출하여 캐시를 비워주는 것이 좋습니다. 또한 이 함수는 원격 파일에는 사용할 수 없으며, 서버 파일 시스템에 접근 가능한 파일에만 적용됩니다.