欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP取二進制文件頭快速判斷文件類型的實現(xiàn)代碼

 更新時間:2013年08月05日 09:31:54   作者:  
以下代碼就展示了自己通過讀取文件頭信息來識別文件的真實類型。需要的朋友可以過來參考下
一般我們都是按照文件擴展名來判斷文件類型,但是這個很不靠譜,輕易就通過修改擴展名來躲避了,一般必須要讀取文件信息來識別,PHP擴展中提供了類似 exif_imagetype 這樣的函數(shù)讀取圖片類的文件類型,但是很多時候擴展不一定安裝了,有時候就需要自己來實現(xiàn)識別文件類型的工作。

下面代碼就展示了自己通過讀取文件頭信息來識別文件的真實類型。
復(fù)制代碼 代碼如下:

<?php
     $files = array(
        'c:\1.jpg',
        'c:\1.png',
        'c:\1.gif',
        'c:\1.rar',
        'c:\1.zip',
        'c:\1.exe',
    );
    foreach ($files AS $file) {
        $fp = fopen($file, "rb");
        $bin = fread($fp, 2); //只讀2字節(jié)
        fclose($fp);
        $str_info  = @unpack("C2chars", $bin);
        $type_code = intval($str_info['chars1'].$str_info['chars2']);
        $file_type = '';
        switch ($type_code) {
            case 7790:
                $file_type = 'exe';
                break;
            case 7784:
                $file_type = 'midi';
                break;
            case 8075:
                $file_type = 'zip';
                break;
            case 8297:
                $file_type = 'rar';
                break;
            case 255216:
                $file_type = 'jpg';
                break;
            case 7173:
                $file_type = 'gif';
                break;
            case 6677:
                $file_type = 'bmp';
                break;
            case 13780:
                $file_type = 'png';
                break;
            default:
                $file_type = 'unknown';
                break;
        }

        echo $file , ' type: <b>', $file_type, '</b> code:<b>', $type_code, '</b><br />';

    }

本例輸出結(jié)果
c:\1.jpg type: jpg code:255216
c:\1.png type: png code:13780
c:\1.gif type: gif code:7173
c:\1.rar type: rar code:8297
c:\1.zip type: zip code:8075
c:\1.exe type: exe code:7790

相關(guān)文章

  • PHP生成指定范圍內(nèi)的N個不重復(fù)的隨機數(shù)

    PHP生成指定范圍內(nèi)的N個不重復(fù)的隨機數(shù)

    今天小編就為大家分享一篇關(guān)于PHP生成指定范圍內(nèi)的N個不重復(fù)的隨機數(shù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)

    php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)

    這篇文章主要介紹了php處理json格式數(shù)據(jù)的方法,詳細講述了json格式數(shù)據(jù)的概念與用法,并結(jié)合經(jīng)典案例總結(jié)分析了php操作json格式數(shù)據(jù)的常用技巧,需要的朋友可以參考下
    2016-05-05
  • php設(shè)計模式 State (狀態(tài)模式)

    php設(shè)計模式 State (狀態(tài)模式)

    允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它所屬的類
    2011-06-06
  • PHP7原生MySQL數(shù)據(jù)庫操作實現(xiàn)代碼

    PHP7原生MySQL數(shù)據(jù)庫操作實現(xiàn)代碼

    php7已經(jīng)沒有mysql這個擴展了,好多貼還是按照以前的方法講,讓我這個新手來回找了好多遍都沒找到mysql,php7用后面兩個鏈接數(shù)據(jù)庫,千萬不要傻傻去找也不要去來回拷貝什么dll之類的
    2020-07-07
  • PHP 全角轉(zhuǎn)半角實現(xiàn)代碼

    PHP 全角轉(zhuǎn)半角實現(xiàn)代碼

    將一個字串中含有全角的數(shù)字字符、字母、空格或'%+-()'字符轉(zhuǎn)換為相應(yīng)半角字符
    2010-05-05
  • coreseek 搜索英文的問題詳解

    coreseek 搜索英文的問題詳解

    本篇文章是對coreseek搜索英文的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 如何使用php輸出時間格式

    如何使用php輸出時間格式

    PHP默認的時區(qū)UTC時區(qū),而北京正好位于該時區(qū)的東八區(qū),領(lǐng)先UTC時區(qū)8個小時,所以在PHP中使用time()函數(shù)獲取的當前時間總是相差8個小時
    2013-08-08
  • php中在PDO中使用事務(wù)(Transaction)

    php中在PDO中使用事務(wù)(Transaction)

    事務(wù) (Transaction) 是操作數(shù)據(jù)庫中很重要的一個功能, 它可以讓你預(yù)定一條, 或者一系列 SQL 語句, 然后一起執(zhí)行
    2011-05-05
  • PHP JSAPI調(diào)支付API實現(xiàn)微信支付功能詳解

    PHP JSAPI調(diào)支付API實現(xiàn)微信支付功能詳解

    本人最近做了微信支付開發(fā),是第一次接觸,其中走了很多彎路,遇到的問題也很多。為了讓和我一樣的新人不再遇到類似的問題,我把我的開發(fā)步驟和問題寫出來以供參考,這篇文章主要介紹了PHP JSAPI調(diào)支付API實現(xiàn)微信支付功能
    2022-11-11
  • php的instanceof和判斷閉包Closure操作示例

    php的instanceof和判斷閉包Closure操作示例

    這篇文章主要介紹了php的instanceof和判斷閉包Closure操作,結(jié)合實例形式分析了PHP使用instanceof判斷類實例以及判斷閉包Closure相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01

最新評論