mixed pathinfo ( string $path [, int $options= PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
(PHP 4 >= 4.0.3, PHP 5)

이 함수는 두 번째 인자를 생략할 경우 파일경로와 파일명, 확장자를 배열로 반환합니다. 파일이름([filename])은 (PHP 5.2.0) 부터 가능합니다.

두 번째 인자는 다음의 상수를 사용할 수 있습니다.

상 수 설 명
PATHINFO_DIRNAME 파일경로, [dirname] =>/www/htdocs/www
PATHINFO_BASENAME 파일명, [basename] => index.html
PATHINFO_EXTENSION 파일 확장자, [extension] => html
PATHINFO_FILENAME 파일이름, [filename] => index

<?php
 $path_parts = pathinfo('/www/htdocs/www//index.html');
 print_r($path_parts);
 /*
 결과:
 Array
 (
    [dirname] => /www/htdocs/www
    [basename] => index.html
    [extension] => html
    [filename] => index
 )
 */


 $path_parts = pathinfo('/www/htdocs/www/index.php.asp.bmp.html.inc');
 print_r($path_parts);
 /*
 결과:
 Array
 (
    [dirname] => /www/htdocs/www
    [basename] => index.php.asp.bmp.html.inc
    [extension] => inc
    [filename] => index.php.asp.bmp.html
 )
 */


 $path_parts = pathinfo('/www/htdocs/www/index');
 print_r($path_parts);
 /*
 결과:
 Array
 (
    [dirname] => /www/htdocs/www
    [basename] => index
    [extension] => 
    [filename] => index
 )
 */
 ?>

다음은 두 번째 인자를 이용한 파일 업로드시 활용 예제입니다.

<?php
 if($_FILES['file']['error'] === UPLOAD_ERR_OK) {
      // 확장자를 반환받습니다.
      if(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION) == "php") {
           echo "확장자 php파일은 업로드 하실수 없습니다.";
      }
 }
 ?>

<?php
 // 파일경로
 $path_parts = pathinfo('/www/htdocs/www///index.php.asp.bmp.html.inc',PATHINFO_DIRNAME);
 echo $path_parts; // 결과: /www/htdocs/www
 // dirname함수도 같은 역할을 합니다.
 echo dirname('/www/httpd/home/index.html'); // 결과: /www/httpd/home


 // 파일명
 $path_parts = pathinfo('/www/htdocs/www///index.php.asp.bmp.html.inc',PATHINFO_BASENAME);
 echo $path_parts; // 결과: index.php.asp.bmp.html.inc
 // basename함수도 같은 역할을 합니다.
 echo basename('/www/httpd/home/index.html'); // 결과: index.html
 // 두번째 인자를 사용할 수 있습니다.
 echo basename('/www/httpd/home/index.html', ".html"); // 결과: index


 // 파일 확장자
 $path_parts = pathinfo('/www/htdocs/www///index.php.asp.bmp.html.inc',PATHINFO_EXTENSION);
 echo $path_parts; // 결과: inc


 // 파일이름
 $path_parts = pathinfo('/www/htdocs/www///index.php.asp.bmp.html.inc',PATHINFO_FILENAME);
 echo $path_parts; // 결과: index.php.asp.bmp.html
 ?>

0 댓글