2012-08-05 3 views
0

나는 지금까지 파일 이름이 얼마나 이상하지 않더라도 파일 확장자를 얻는 것을 정말 잘하는 것으로 보이는 함수를 만들었습니다. 내가 그물에 가로 질러 온 모든 방법은 폭발을 사용하는 것 같다. 확장자를 얻으려면 파일 이름에 .s가 여러 개 있으면 어떻게 될까요? 나는 바퀴를 개혁하거나 더 효율적으로 할 수파일 확장명을 얻는 좋은, 믿을 수있는 기능

$fileName = 'my.reallyAwk-ward..file--name.JPEG' ; 
echo getExtension($fileName) ; 

function getExtension($fileName) 
{ 
    $ext = explode('.', strrev($fileName), 2) ; 
    $ext = strtolower(strrev($ext[0])) ; 
    return $ext ; 
} 

암 : 여기

내 기능입니다?

$filename = 'myfile.jpg'; 
$extension = substr($filename, strrpos($filename,'.') +1) 

폭발 새로운 배열을 생성하고, 더 많은 '작업은'일반적으로있다 : http://php.net/manual/en/function.pathinfo.php

+0

http://php.net/pathinfo – zerkms

+0

좋아 보인다. 당신은 또한 여러 확장 기능이 있는지 확인하고, 그 경우에 배열을 반환 할 수 있습니다. 그러나 그것이 당신이 찾고있는 것 같지는 않습니다. 그러나'name.php.inc'와 같은 파일은 두 개의 확장자를 갖는 것으로 계산됩니다. –

+0

FYI'explode()'와'end()'도 당신이 원하는 것을 할 것이지만,'pathinfo'는 더 유용한 정보를 포함 할 수 있습니다. @ AndreiBârsan 파일에는 여러 개의 확장명을 사용할 수 없습니다. 'name.php.inc' 파일의 확장자는'.inc' 확장자이고'name.php' 파일명입니다. – PeeHaa

답변

7
<?php 
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); 

echo $path_parts['dirname'], "\n"; 
echo $path_parts['basename'], "\n"; 
echo $path_parts['extension'], "\n"; 
echo $path_parts['filename'], "\n"; // since PHP 5.2.0 
?> 

나는이 약간 청소기라고 생각합니다.

+0

그냥 PATHINFO_EXTENSION을 지정하면 트릭을 수행합니다. pathinfo는 Everts 및 제 기능보다 약간 빠릅니다. – imperium2335

관련 문제