>  기사  >  백엔드 개발  >  PHP에서 파일 확장자를 얻는 여러 가지 방법

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

小云云
小云云원래의
2018-03-14 11:08:322396검색

이 기사는 주로 PHP에서 파일 확장자를 얻는 다양한 방법을 공유합니다. 도움이 되기를 바랍니다.

인터넷에서 수집한 기본 방법은 다음과 같습니다.

첫 번째 방법:

function get_extension($file)
{
substr(strrchr($file, '.'), 1);
}

참고:

strrchr() 함수는 다른 문자열에서 마지막으로 나타나는 문자열을 찾고, 이 위치부터 끝까지의 모든 문자를 반환합니다. 문자열.

substr() 함수는 문자열의 일부를 반환합니다.

방법 2:

function get_extension($file)
{
return substr($file, strrpos($file, '.')+1);
}

설명:

strrpos() 함수는 다른 문자열에서 마지막으로 나타나는 문자열을 찾습니다.

substr() 함수는 문자열의 일부를 반환합니다.

세 번째 방법:

function get_extension($file)
{
return end(explode('.', $file));
}

참고:

explode() 함수는 문자열을 배열로 나눕니다.

end() 함수는 배열 내부 포인터를 마지막 요소로 설정하고 해당 요소의 값을 반환합니다(성공한 경우).

방법 4:

function get_extension($file)
{
$info = pathinfo($file);
return $info['extension'];
}

참고:

pathinfo() 함수는 파일 경로 정보를 배열 형식으로 반환합니다.

방법 5:

function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}

참고:

pathinfo() 함수는 파일 경로 정보를 배열 형식으로 반환합니다.

위의 방법을 잠깐 살펴보면 모두 작동하는 것 같습니다. 특히 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"; // only in 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를 사용하여 파일 확장자를 결정하는 방법

php 샘플 코드를 사용하여 파일 확장자를 가져옵니다.

파일 확장자를 가져오는 PHP 샘플 코드 요약

위 내용은 PHP에서 파일 확장자를 얻는 여러 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 정규식 요약다음 기사:PHP 정규식 요약