> 백엔드 개발 > PHP 튜토리얼 > PHP에서 파일 확장자를 얻는 N 가지 방법

PHP에서 파일 확장자를 얻는 N 가지 방법

巴扎黑
풀어 주다: 2016-11-22 11:23:38
원래의
1175명이 탐색했습니다.

PHP에서 파일 확장자를 얻는 N 가지 방법
인터넷에서 수집되며 기본적으로 다음 방법이 있습니다.


첫 번째 방법:
function get_extension( $file)
{
substr(strrchr($file, '.'), 1);
}
두 번째 방법:
function get_extension($file)
{
return substr($file , strrpos($file, '.')+1);
}
세 번째 방법:
function get_extension($file)
{
return end(explode('.', $file));
}
네 번째 방법:
function get_extension($file)
{
$info = pathinfo($file)
return $info['extension '];
}
다섯 번째 방법:
function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION)
}
위의 방법에서는 모두 작동하는 것 같습니다. 특히 pathinfo에 두 번째 매개변수가 있다는 것을 몰랐던 방법 1과 2를 사용했습니다. 하지만 잘 생각해 보면 처음 네 가지 방법에는 여러 가지 단점이 있습니다. 파일 확장자를 완전히 정확하게 얻으려면 다음 세 가지 특별한 상황을 처리할 수 있어야 합니다.
파일 확장자 없음
경로에 /home/test.d/test.txt와 같이 . 문자가 포함되어 있습니다.
경로에 . 문자가 포함되어 있지만 파일에 확장자가 없습니다. 예를 들어 /home/test.d/test
분명한 것은 1과 2가 세 번째 상황을 처리할 수 없고, 3이 첫 번째와 세 번째 상황을 올바르게 처리할 수 없다는 것입니다. 4는 올바르게 처리되지만 확장이 없으면 경고가 발생합니다. 방법 5만이 가장 정확한 방법입니다. 그런데 pathinfo 메소드를 살펴보세요. 공식 홈페이지 소개는 다음과 같습니다.
$file_path = pathinfo('/www/htdocs/your_image.jpg')

echo "$file_path ['dirname']n"; >echo "$file_path ['basename']n";
echo "$file_path ['extension']n";
echo "$file_path ['filename']n" // PHP 5.2 이상에서만 가능
최대 4개의 요소를 포함하는 배열을 반환하지만 항상 4개가 있는 것은 아닙니다. 예를 들어 확장이 없으면 확장 요소가 없으므로 네 번째 메서드는 경고를 감지합니다. 그러나 phpinfo는 두 번째 매개변수도 지원합니다. 반환할 데이터의 특정 부분을 지정하기 위해 상수를 전달할 수 있습니다.
PATHINFO_DIRNAME - 디렉터리
PATHINFO_BASENAME - 파일 이름(확장자 포함)
PATHINFO_EXTENSION - 확장자
PATHINFO_FILENAME - 파일 이름(확장자 없음) , PHP>5.2)
이 네 가지 상수의 값은 각각 1, 2, 4, 8입니다. 처음에는 OR 연산을 통해 여러 상수를 지정할 수 있다고 생각했습니다.
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
나중에 이것이 작동하지 않는다는 것을 알았습니다. 여러 OR 상수 중 가장 작은 것만 반환됩니다. 즉, 4개의 플래그 비트 중 가장 작은 비트는 상수 1입니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿