이 기사는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!