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

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

墨辰丷
풀어 주다: 2023-03-29 10:56:01
원래의
2056명이 탐색했습니다.

이 글은 PHP를 사용하여 파일의 접미사 이름을 얻는 여러 가지 방법을 요약합니다. 매우 간단하고 실용적입니다. 도움이 필요한 친구들이 참고할 수 있습니다.

예를 들어 이미지 파일의 접미사, jpg 또는 gif 등

두 가지 방법이 있습니다

첫째, $img가 이미지 파일 이름이라면

$img=12345.gif;
$img_ext = substr($img, strrpos($img, '.'));
로그인 후 복사

둘째, php 배열을 사용하고, 먼저 파일 이름 문자열을 배열에 읽어들이고

$ext2=explode(".",$img);
      $count=count($ext2);
      $count2=$count-1;
      $file_name  = $urlstr .'.'.$ext2[$count2];//得到后缀并重新定义新的文件名$file_name
로그인 후 복사

또한 첨부합니다 다른 친구들 요약 나왔던 방법 :

第1种方法:
function get_extension($file)
{
substr(strrchr($file, '.'), 1);
}
第2种方法:
function get_extension($file)
{
return substr($file, strrpos($file, '.')+1);
}
第3种方法:
function get_extension($file)
{
return end(explode('.', $file));
}
第4种方法:
function get_extension($file)
{
$info = pathinfo($file);
return $info['extension'];
}
第5种方法:
function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}
로그인 후 복사

위 방법들을 잠깐 훑어보니 다 되는 것 같더라고요. 특히 1번과 2번 방법은 예전에 몰랐던 방법인데.. 해당 pathinfo에는 두 번째 매개변수가 있습니다. 하지만 잘 생각해 보면 처음 네 가지 방법에는 여러 가지 단점이 있습니다. 파일 확장자를 완전히 정확하게 얻으려면 다음 세 가지 특별한 상황을 처리할 수 있어야 합니다.

  1. 파일 확장자 없음

  2. 경로에 . 문자가 포함되어 있습니다. 예: /home/test.d/test.txt

  3. 경로에 . 문자가 포함되어 있지만 파일에는 확장자가 없습니다. 예를 들어, /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 구현 방법 요약

클라이언트 및 서버 IP 캡슐화 클래스를 얻기 위한 PHP 구현

WeChat 빨간 봉투 기반 구현을 위한 알고리즘 PHP에서

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

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