å¯ä»¥ä½¿ç¨pathinfoæ¹æ³æ¥éè¿åç¼åè¿è¡å¤ææä»¶ç±»åã

代ç 示ä¾ï¼(æ¨èå¦ä¹ ï¼PHPè§é¢æç¨)
function get_extension($file){
return pathinfo($file, PATHINFO_EXTENSION);
}
说æ: pathinfoå ·ä½ä½¿ç¨æ¹æ³ï¼å¯ä»¥æ¥çphpæåã使¯è¯¥æ¹æ³ä» ä» åªè½æ ¹æ®æä»¶åç¼æ¥å¤ææä»¶ç±»åï¼å¦æhtmlåç¼çæä»¶ï¼è¢«ä¿®æ¹æ.phpçåç¼ä¹åï¼è¯»åå°ç忝phpç±»åæä»¶ã
$_FILES
妿æ¯phpä¸ä¼ æä»¶ï¼åå¯ä»¥ç¨$_FILES[âuploadfileâ][âtypeâ]æ¥è·åæä»¶ç±»åï¼ä½æ¯åæ ·ä¼åå¨åpathinfoåæ ·çé®é¢ï¼è¯¥æ¹æ³ä» ä» åªè½æ ¹æ®æä»¶åç¼æ¥å¤ææä»¶ç±»åã
php Fileinfo è·åæä»¶MIMEç±»å(finfo_open)<?php
$finfo = finfo_open(FILEINFO_MIME); // è¿å mime ç±»å
$filename = '.\Uploads\2.zip';
var_dump(finfo_file($finfo, $filename));
finfo_close($finfo);
die;
说æ: 妿æä»¶åå¨åè¿åæä»¶ç±»åï¼å¦åè¿åfalseãè¯¥æ¹æ³éè¦php5.3.0+çæ¬ãå¯ä»¥æ ¹æ®è¿åçç»ææ¥å¤ææ¯ä»ä¹ç±»åçæä»¶ãè¯¥æ¹æ³å³ä¾¿æ¯åæä»¶è¢«æ¹è¿åç¼ï¼å·²ç¶å¯ä»¥è¯»å°åæä»¶ç±»åã
读åæä»¶å¤´å 个åèä½ä¸ºå¤æã<?php
// 宿¹ç¤ºä¾
function minimime($fname) {
$fh=fopen($fname,'rb');
if ($fh) {
$bytes6=fread($fh,6);
fclose($fh);
if ($bytes6===false) return false;
if (substr($bytes6,0,3)=="\xff\xd8\xff") return 'image/jpeg';
if ($bytes6=="\x89PNG\x0d\x0a") return 'image/png';
if ($bytes6=="GIF87a" || $bytes6=="GIF89a") return 'image/gif';
return 'application/octet-stream';
}
return false;
}
// 尿件头4个åèè½¬æ¢æ16è¿å¶å¤æ
function fileType($filename) {
// 读åæä»¶çå4个åèï¼æ ¹æ®ç¡¬ç¼ç 夿
$file = fopen ( $filename, "rb" );
$strFile = fread ( $file, 4 ); //åªè¯»æä»¶å¤´4åè
fclose ( $file );
$strInfo = @unpack ( "C4chars", $strFile );
//dechex(),æåè¿å¶è½¬æ¢ä¸ºåå è¿å¶ã
$code = dechex ( $strInfo ['chars1'] ) .
dechex ( $strInfo ['chars2'] ) .
dechex ( $strInfo ['chars3'] ) .
dechex ( $strInfo ['chars4'] );
$type = '';
switch ($code) //硬ç¼ç 弿¥è¡¨
{
case "504b34" :
$type = 'application/zip; charset=binary';
break;
case "89504e47" :
$type = 'image/png; charset=binary';
break;
default :
$type = false;
break;
}
return $type;
}
è¿ä¸ªæ¹æ³æç¼ºé·ï¼ä¸åç±»åçæä»¶ï¼æä»¶å¤´4个åèå¯è½ä¼ç¸åï¼å¹¶ä¸é¨åæä»¶ç±»å表示æä»¶ç±»åçå符串ï¼å°äº4个åèãå¯ä»¥èèå°æ¹æ³ä¸åæ¹æ³åç»å使ç¨ã
æ´å¤PHPç¸å ³ææ¯æç« ï¼è¯·è®¿é®PHP徿æç¨æ ç®è¿è¡å¦ä¹ ï¼