Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xác định loại kịch câm từ cột MySQL

NẾU máy chủ của bạn vẫn sử dụng php 5.2 và không có quyền truy cập vào các chức năng của fileinfo, bạn có thể kiểm tra chữ ký tiêu đề tệp (số ma thuật) để xác định loại mime

function mimetype($data)
{
    //File signatures with their associated mime type
    $Types = array(
    "474946383761"=>"image/gif",                        //GIF87a type gif
    "474946383961"=>"image/gif",                        //GIF89a type gif
    "89504E470D0A1A0A"=>"image/png",
    "FFD8FFE0"=>"image/jpeg",                           //JFIF jpeg
    "FFD8FFE1"=>"image/jpeg",                           //EXIF jpeg
    "FFD8FFE8"=>"image/jpeg",                           //SPIFF jpeg
    "25504446"=>"application/pdf",
    "377ABCAF271C"=>"application/zip",                  //7-Zip zip file
    "504B0304"=>"application/zip",                      //PK Zip file ( could also match other file types like docx, jar, etc )
    );

    $Signature = substr($data,0,60); //get first 60 bytes shouldnt need more then that to determine signature
    $Signature = array_shift(unpack("H*",$Signature)); //String representation of the hex values

    foreach($Types as $MagicNumber => $Mime)
    {
        if( stripos($Signature,$MagicNumber) === 0 )
            return $Mime;  
    }

    //Return octet-stream (binary content type) if no signature is found
    return "application/octet-stream"; 
}

LƯU Ý: Một số chữ ký có thể khớp với các phần của những người khác, ví dụ:chữ ký tệp PK Zip khớp với 4 byte đầu tiên của chữ ký tệp lưu trữ java (.jar), sẽ cần các câu lệnh bổ sung trong vòng lặp foreach để xác định chữ ký chính xác cho kịch bản loại , nhưng đối với tình huống của bạn, điều này nên làm.

Bạn có thể tìm thấy danh sách cập nhật các chữ ký tệp tại http://www.garykessler.net/library /file_sigs.html nếu ai đó cần thêm loại chữ ký tệp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql giả chọn

  2. Cập nhật Cơ sở dữ liệu từ Javascript bằng cách gọi PHP script

  3. MySQL chọn hàng ngẫu nhiên với JOIN từ hai bảng

  4. Đếm số hàng trong golang

  5. Nhiều mối quan hệ hấp dẫn giống hệt nhau