object apache_lookup_uri ( string $filename ) (PHP 4, PHP 5)

이 함수는 PHP를 아파치 모듈과 연동하였을 때만 작동합니다. 그리고 주어진 인자에 파일명 (URI)에 대한 정보, 헤더 정보를 다음 표의 값을 Object로 반환합니다.

 status
 the_request
 status_line
 method
 content_type
 handler
 uri
 filename
 path_info
 args
 boundary
 no_cache
 no_local_copy
 allowed
 send_bodyct
 bytes_sent
 byterange
 clength
 unparsed_uri
 mtime
 request_time

예제(ex #1

  <?php
 $info 
apache_lookup_uri('index.php?var=value&key=tempo'
);
 
print_r($info
);
 
/*
 결과:
 stdClass Object
 (
    [status] => 200
    [the_request] => GET /test.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /index.php?var=value&key=tempo
    [uri] => /index.php
    [filename] => /host/html/index.php
    [args] => var=value&key=tempo
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1307537760
 )
 */
 ?>


예제(ex #2
 <?php
 $info 
apache_lookup_uri('test.php'
);
 if(
file_exists($info->filename
)){
      echo 
"실제 존재하는 파일입니다."
;
 }
 
?> 

예제(ex #3
 <?php
 $info 
apache_lookup_uri('test.php'
);
 if(
$info->method === "GET"
){
      echo 
"이 파일은 GET으로 접속하였습니다."
;
 }
 
?> 
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

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] 부터 사용할 수 있습니다.

예제 (ex #1

 <?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
 )
 */
 
?>


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

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

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

 PATHINFO_DIRNAME

 파일경로, [dirname] =>/www/htdocs/www

 PATHINFO_BASENAME  파일명, [basename] => index.html
 PATHINFO_EXTENSION  파일 확장자, [extension] => html
 PATHINFO_FILENAME   파일이름, [filename] => index

예제 (ex #3

 <?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
 
?>


상대경로를 절대경로로 반환하는 realpath 함수

string realpath ( string $path ) (PHP 4, PHP 5)

예제 (ex #4
 <?php
 
echo realpath('./../../etc/passwd'); 
// 결과: /etc/passwd

 
echo realpath('/windows/system32'); 
// 결과: C:\WINDOWS\System32
 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

mime_content_type (PHP 4 >= 4.3.0, PHP 5)

이 함수는 단순히 파일의 확장자를 기초로 파일타입을 출력합니다.
예로 myimage.bmp가 있다면 실제 그림타입이 jpg이지만 bmp타입을 출력할 것입니다.

string
mime_content_type ( string $filename )

 <?php
 
function user_mime_content_type($filename
)
 {
   if(!
function_exists('mime_content_type'
))
   {
      
$type 
= array(
      
'txt' => 'text/plain'
,
      
'htm' => 'text/html'
,
      
'html' => 'text/html'
,
      
'php' => 'text/html'
,
      
'css' => 'text/css'
,
      
'js' => 'application/javascript'
,
      
'json' => 'application/json'
,
      
'xml' => 'application/xml'
,
      
'swf' => 'application/x-shockwave-flash'
,
      
'flv' => 'video/x-flv'
,

      
// images
      
'png' => 'image/png'
,
      
'jpe' => 'image/jpeg'
,
      
'jpeg' => 'image/jpeg'
,
      
'jpg' => 'image/jpeg'
,
      
'gif' => 'image/gif'
,
      
'bmp' => 'image/bmp'
,
      
'ico' => 'image/vnd.microsoft.icon'
,
      
'tiff' => 'image/tiff'
,
      
'tif' => 'image/tiff'
,
      
'svg' => 'image/svg+xml'
,
      
'svgz' => 'image/svg+xml'
,
     
      
// archives
      
'zip' => 'application/zip'
,
      
'rar' => 'application/x-rar-compressed'
,
      
'exe' => 'application/x-msdownload'
,
      
'msi' => 'application/x-msdownload'
,
      
'cab' => 'application/vnd.ms-cab-compressed'
,
     
      
// audio/video
      
'mp3' => 'audio/mpeg'
,
      
'qt' => 'video/quicktime'
,
       
'mov' => 'video/quicktime'
,
    
      
// adobe
      
'pdf' => 'application/pdf'
,
      
'psd' => 'image/vnd.adobe.photoshop'
,
      
'ai' => 'application/postscript'
,
      
'eps' => 'application/postscript'
,
      
'ps' => 'application/postscript'
,

      
// ms office
      
'doc' => 'application/msword'
,
      
'rtf' => 'application/rtf'
,
      
'xls' => 'application/vnd.ms-excel'
,
      
'ppt' => 'application/vnd.ms-powerpoint'
,
    
      
// open office
      
'odt'=>'application/vnd.oasis.opendocument.text'
,
      
'ods'=>'application/vnd.oasis.opendocument.spreadsheet'
,
     );
     
$ext strtolower(array_pop(explode('.',$filename
)));
     if (
array_key_exists($ext$type
))
     {
         return 
$type[$ext
];
      }
      elseif (
function_exists('finfo_open'
))
     {
         
$finfo finfo_open(FILEINFO_MIME
);
         
$mimetype finfo_file($finfo$filename
);
         
finfo_close($finfo
);
         return 
$mimetype
;
     }
     else
    {
        return 
'application/octet-stream'
;
    }
  }
  else
  {
      return 
mime_content_type($filename
);
   }
 }

 ?>


예제 (ex #1
 <?php
  $type 
user_mime_content_type("test.bmp.txt.zip.jpg"
);
 
print_r($type); 
// 결과: image/jpeg
 ?>

예제 (ex #2
 <?php
 $type 
user_mime_content_type("test.jpg"
);
 
header("Content-type: ".$type
);
 
header("content-disposition: attachment; filename=\"test.jpg\""
);
 
header("content-description: php generated data"
);
 
header("Pragma: no-cache"
); 
 
header("Expires: 0"
); 

 
$fp fopen("test.jpg""r"
);
 if (!
fpassthru($fp
))
 {
   
fclose($fp
);
 }
 @
flush
();
 ?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag MIME

댓글을 달아 주세요

exif_imagetype (PHP 4 >= 4.3.0, PHP 5)

int
exif_imagetype ( string $filename )

exif_imagetype은 Value(정수)값을 출력합니다.

Value Constant
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel byte order)
8 IMAGETYPE_TIFF_MM (motorola byte order)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM

예제 (ex #1
 <?php
 $type 
exif_imagetype("test.bmp"
);
 
print_r($type); 
// 출력: 6

 // #1 예제
 
if($type == 6
)
 {
    
dir(" BMP 파일입니다. "
);
  }
 else
  {
     
// error!
  
}

 
// #2 예제
 
if($type == IMAGETYPE_BMP
)
 {
    
dir(" BMP 파일입니다. "
);
  }
 else
  {
     
// error!
  
}
 ?>

예제 (ex #2
  <?php
 if(!function_exists('exif_imagetype')) {
    function 
exif_imagetype("test.bmp") {
     list(
$w,$h,$type,$attr)=getimagesize("test.bmp",$app);
       if(
$app !== false) {
            return 
$type;
       }
    return 
false;
    }
 }
 else {
    if((
$type exif_imagetype("test.bmp")) !== false) {
        return 
$type;
     }
   return 
false;
 }
 ?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag exif, MIME

댓글을 달아 주세요

재수정일: 2011/05/09 Pm 5:20

array
getimagesize ( string $filename [, array &$imageinfo ] ) (PHP 4, PHP 5)

이 함수는 이미지의 크기나 타입에 대한 정보를 출력해 주는 함수로 7개의 엘레먼트를 배열로 제공합니다. 이 함수는 자주 사용되기도 하지만 알아두면 아주 유용합니다.

예제 (ex #1
 <?php
 $size 
getimagesize("test.jpg"
);

 
print_r($size
);

 
// 출력
 
Array
 (
    [
0] => 
68
    
[1] => 
100
    
[2] => 
2
    
[3] => width="68" height=
"100"
    
[bits] => 
8
    
[channels] => 
3
    
[mime] => image/
jpeg
 
)
 
?>

배열에 대한 정보는 다음 표를 보면 알 수 있습니다.

 엘레먼트  의미
 [0]  Width값
 [1]  Height값
 [2]  Image Type Flag, 타입을 정수로 반환
 [3]  Width, Height값; ex # "width='68' height='10'"
 [bits]  비트
 [channels]  channels
 [mime]  파일 mime-type; ex # "image/jpeg"

"test.jpg" 파일 정보를 보면, 8비트인 jpg이미지로 가로 크기 68, 세로 크기가 100임을 알 수 있습니다. 여기서 엘레먼트 [2]는 다음 표의 타입을 참고로 대조해도 됩니다.

 반환 값 의미
 1 GIF
 2 JPG
 3 SWF
 4 PSD
 5 BMP
 6 TIFF(orden de bytes intel)
 7 TIFF(orden de bytes motorola)
 8 JPC
 9 JP2
 10 JPX
 11 JB2
 12 SWC
 13 IFF
 14 WBMP
 15 XBM

예제 (ex #2

 <?php
 $size 
getimagesize("rss.gif"
);

 
// 타입 1은 gif파일이므로 다음 조건문은 참입니다.
 
if($size[2] == 1
){
  echo 
"gif 파일입니다."
;
 }


 
$size getimagesize("test.bmp"
);

 
// 타입 5는 bmp파일이므로 다음 조건문은 참입니다.
 
if($size[2] == 5
){
  echo 
"bmp 파일입니다."
;
 }


 
$size getimagesize("sss.jpg"
);

 
// 타입 4는 psd파일이므로 다음 조건문은 거짓입니다.
 
if($size[2] == 5
){
  echo 
"bmp 파일입니다."
;
 }
 
?>


예제 (ex #3
 <?php
 $imgurl 
"test.bmp"
;
 list(
$width$height$type$attr) = getimagesize($imgurl
);

 
// $attr는 엘레먼트 [3]입니다.
 
echo "<img src='${imgurl}' ${attr} alt='getimagesize() example' />"
;

 
// 결과: <img src='test.bmp' width="182" height="220"
           alt='getimagesize() example' />
 
?>

다음은 URL를 이용한 예제입니다.

예제 (ex #4

 <?php
 $size 
getimagesize("http://kr2.php.net/images/php.gif"
);
 
print_r($size
);

 
/*
 결과: 
 Array
 (
    [0] => 120
    [1] => 67
    [2] => 1
    [3] => width="120" height="67"
    [bits] => 7
    [channels] => 3
    [mime] => image/gif
 )
 */


 
$size getimagesize("http://main2.nateimg.co.kr/img/cms/
                                  content_pool/2011/05/L_02(3).jpg"); 

 print_r($size);

 
/*
 결과:
 Array
 (
    [0] => 105
    [1] => 70
    [2] => 2
    [3] => width="105" height="70"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
 )
 */
 
?> 


다음 fopen함수를 이용한 이미지 출력입니다.

예제 (ex #5
 <?php
 $file 
"test.bmp"
;
 
$size getimagesize($file
);
 
$fp fopen($file"rb"
);
 if (
$size && $fp
) {
    
header("Content-type: ".$size['mime'
]);
    
fpassthru($fp
);
    exit;
 }
 
?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag MIME

댓글을 달아 주세요