本文目錄一覽:
- 1、PHP讀取文件前幾個位元組 判斷文件類型函數
- 2、PHP判斷文件名是否符合規定類型
- 3、php獲取文件mime類型的幾種方法
- 4、PHP怎麼獲取文件類型????
- 5、php上傳文件是,判斷是否csv文件的文件類型怎麼寫?
- 6、php 文件上傳怎樣設置文件的類型為所有類型(jpg,doc,rar,等所有文件類型)
PHP讀取文件前幾個位元組 判斷文件類型函數
PHP讀取文件前幾個位元組 判斷文件類型函數
/**
* 讀取文件前幾個位元組 判斷文件類型
*
* @return String
*/
function checkTitle($filename) {
$file = fopen($filename, ‘rb’);
$bin = fread($file, 2); //只讀2位元組
fclose($file);
$strInfo = @unpack(‘c2chars’, $bin);
$typeCode = intval($strInfo[‘chars1’].$strInfo[‘chars2’]);
$fileType = ”;
switch ($typeCode)
{
case 7790:
$fileType = ‘exe’;
break;
case 7784:
$fileType = ‘midi’;
break;
case 8297:
$fileType = ‘rar’;
break;
case 255216:
$fileType = ‘jpg’;
break;
case 7173:
$fileType = ‘gif’;
break;
case 6677:
$fileType = ‘bmp’;
break;
case 13780:
$fileType = ‘png’;
break;
default:
$fileType = ‘unknown’.$typeCode;
}
//Fix
if ($strInfo[‘chars1′]==’-1′ $strInfo[‘chars2′]==’-40′ ) {
return ‘jpg’;
}
if ($strInfo[‘chars1′]==’-119′ $strInfo[‘chars2′]==’80’ ) {
return ‘png’;
}
return $fileType;
}
PHP判斷文件名是否符合規定類型
?php
$ereg = ‘[^0-9a-zA-Z_]’;
$value = ‘8aA_()’;
if(@ereg($ereg, $value, $arr)){
echo ‘不允許出現的字元’.$arr[0];
} else {
echo ‘未匹配正確’;
}
?
php獲取文件mime類型的幾種方法
php獲取文件mime類型有以下幾種方法:
1、mime_content_type()函數判斷獲取mime類型
mime_content_type返回指定文件的MIME類型,
用法:
echomime_content_type(‘php.gif’) .”\n”;
echomime_content_type(‘test.php’);
輸出:
image/gif
text/plain
但是php 5.3.0已經將該函數廢棄。如果仍想使用此函數,那麼可以對php進行配置啟用magic_mime擴展。
2、php Fileinfo 獲取文件MIME類型(finfo_open)
PHP官方推薦mime_content_type()的替代函數是Fileinfo函數。PHP
5.3.0+已經默認支持Fileinfo函數(fileinfo
support-enabled),不必進行任何配置即可使用finfo_open()判斷獲取文件MIME類型。
用法:
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
3、image_type_to_mime_type()獲取圖片MIME類型
如果需要判斷MIME類型的文件只有圖像文件,那麼首先可以使用exif_imagetype()函數獲取圖像類型常量,再用image_type_to_mime_type()函數將圖像類型常量轉換成圖片文件的MIME類型。
注意:需要在php.ini中配置打開php_mbstring.dll(Windows需要)和extension=php_exif.dll。
4、php上傳文件獲取MIME類型
如果使用php上傳文件,檢測上傳文件的MIME類型,則可以使用全局變數$_FILES[‘uploadfile’][‘type’],由客戶端的瀏覽器檢測獲取文件MIME類型。
PHP怎麼獲取文件類型????
遍列你是會的吧,中間會得到文件的全名,你現在需要取出文件的擴展名,對吧?
例子代碼:
?php
$f=’/www/htdocs/index.html’;
$path_parts = pathinfo($f);
echo $path_parts[‘dirname’], “\n”;
echo $path_parts[‘basename’], “\n”;
echo $path_parts[‘extension’], “\n”; //你需要的就是這個,對吧?
echo $path_parts[‘filename’], “\n”;
?
判斷是否文件夾,要使用函數is_file,返回false的就是文件夾,例如:
?php
var_dump(is_file(‘a_file.txt’)) . “\n”;
var_dump(is_file(‘/usr/bin/’)) . “\n”;
?
bool(true)
bool(false)
php上傳文件是,判斷是否csv文件的文件類型怎麼寫?
$_FILES接收到文件信息是個數組。
其中$_FILES[‘myFile’][‘name’] 客戶端文件的原名稱 ,
您用『.』來分割$_FILES[‘myFile’][‘name’]分成一個索引數組,這個數組的最後一個值就是文件的擴展名。
或者你從最後一個「.」位置截取$_FILES[‘myFile’][‘name’],截取到最後。得到的結果也是文件的擴展名;
$_FILES[‘myFile’][‘type’]得到的是文件的 MIME類型,這個並不能很好的反映文件的擴展名,
例如:
MIME類型為「text/html」,這個類型對應.html .htm .stm三種文件擴展名
MIME類型為「text/plain」,對應的是.c .txt .h .bas四種文件擴展名
php 文件上傳怎樣設置文件的類型為所有類型(jpg,doc,rar,等所有文件類型)
一般PHP文件上傳時應自行設置檢查文件類型的,如果你不檢查就能上傳所有的文件類型了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/253995.html