Loại nội dung PHP

Giống như minh họa Tạo một dịch vụ web cơ bản bằng PHP, MySQL, XML và JSON của tôi, mặc dù phần mở rộng của tệp kết thúc bằng PHP, bạn vẫn có thể cho trình duyệt biết rằng bạn đang xuất một loại nội dung khác. Dưới đây là một số loại nội dung phổ biến hơn được sử dụng trên internet

Hệ thống Phần mở rộng Thư Internet Đa năng [MIME] được thiết kế để cho phép định dạng email để chúng có thể dễ dàng bao gồm các tệp và được tạo thành từ nhiều phần. Để có thể hướng dẫn các ứng dụng email loại tệp được đính kèm, các loại MIME đã được tạo - mô tả ngắn, bằng văn bản về các loại tệp mà mọi người có thể nhận ra. Các loại MIME phổ biến đến mức hiện tại chúng được sử dụng trên toàn bộ WWW và nhiều hệ điều hành dựa vào chúng để quyết định cách mở tệp. Trong email, các tệp đính kèm được sao chép vào thư theo nghĩa đen dưới dạng một chuỗi được mã hóa, với các điểm đánh dấu ranh giới MIME được sử dụng để cho người đọc thư biết vị trí bắt đầu và kết thúc của mỗi tệp đính kèm

Để giúp phân biệt một tệp nhất định là gì và cách xử lý tệp đó, cả máy chủ web và ứng dụng email đều gửi và nhận các loại MIME - chuỗi văn bản cơ bản xác định tệp đã cho là gì. Ví dụ: nếu bạn muốn gửi JPEG từ một tập lệnh, bạn cần tìm loại MIME của nó ["hình ảnh/jpeg"] và gửi nó tới trình duyệt trước chính hình ảnh đó

Có các loại MIME cho tất cả các loại định dạng, từ "application/zip" cho tệp zip đến "video/quicktime" cho Quicktime. mov và "application/x-tar" cho các tệp Tar. Công việc của Cơ quan cấp số được gán trên Internet [IANA] là gán các loại MIME chính thức và nó cũng giữ một danh sách tất cả các loại MIME đã đăng ký trên trang web của mình. Tại thời điểm viết, danh sách này có sẵn tại http. //www. iana. org/bài tập/loại phương tiện - đáng xem qua

Có hàng trăm, thậm chí có thể hàng ngàn loại MIME ngoài kia, đơn giản vì có rất nhiều định dạng tệp ngoài kia, nhưng có một số định dạng nhất định nổi bật là phổ biến, đó là

đơn/đồng. MS Excel

Tệp dữ liệu Microsoft Excel

âm thanh/wav

Tệp âm thanh sóng

phông chữ/ttf

Phông chữ TrueType

hình ảnh/gif

ảnh GIF

hình ảnh/jpeg

ảnh JPEG

hình ảnh/tiff

hình ảnh TIFF

hình ảnh/bmp

Hình ảnh bitmap

hình ảnh/png

hình ảnh PNG

văn bản/html

tệp HTML

văn bản/đồng bằng

Văn bản thô

văn bản/đồng. ms-từ

Tệp dữ liệu Microsoft Word

video/mpeg

phim MPEG

video/thời gian nhanh

video quay nhanh

Như bạn có thể thấy, ý nghĩa là tự giải thích từ loại MIME - nó có thể đọc được bằng con người và có thể đọc được bằng máy, đây là một tài sản lớn. Các loại MIME được sử dụng ở nhiều nơi khác ngoài email - ví dụ: máy chủ web sử dụng rất nhiều loại MIME để biết cách xử lý các tệp khi chúng được yêu cầu và cũng để chúng biết loại tài liệu nào khách hàng có thể và

Đương nhiên, bạn không nên tiếp tục tra cứu các danh sách dài để tìm loại MIME mà bạn muốn mỗi khi bạn nhận được một tệp, nhưng PHP đã giải cứu bằng chức năng tra cứu MIME đặc biệt, mime_content_type[]. Điều này dựa trên mô-đun Apache mod_mime_magic, bản thân mô-đun này dựa trên lệnh tệp Unix. Nếu bạn chưa bao giờ sử dụng điều này trước đây, thì nguyên tắc là nhiều loại tệp có một mã định danh duy nhất trong một vài byte đầu tiên, được gọi là "số ma thuật", chỉ định loại tệp đó là gì. Ví dụ, các bản đồ bit bắt đầu bằng "BM" và các tệp thực thi MS DOS bắt đầu bằng "MZ". Bằng cách có một bảng tra cứu lớn lựa chọn các con số kỳ diệu này, khá dễ dàng để biết được loại tệp nào đang được kiểm tra và do đó, loại MIME nên là gì

Để tiện ích mở rộng ma thuật MIME hoạt động, bạn phải định cấu hình PHP bằng công tắc -with-mime-magic [Unix] hoặc bật tiện ích mở rộng trong php của bạn. ini [Windows]. Trên Windows, bạn cũng sẽ cần chỉnh sửa một mục khác trong tệp php của mình. ini - "mime_magic. magicfile" nên được đặt vào thư mục cài đặt PHP, với thư mục con "extras". Vì vậy, nếu bạn đã cài đặt PHP vào c. \php, điều này sẽ cần được đặt thành "c. /php/bổ sung/ma thuật. kịch câm". Trên Unix, tiện ích mở rộng này dựa trên tệp "ma thuật" được gửi cùng với Apache. Nếu PHP không tìm thấy điều này vì một số lý do, hãy thử đặt cấu hình php. ini cũng vậy

Khi bạn có tiện ích mở rộng ma thuật MIME hoạt động, bạn chỉ cần chuyển tên tệp tới mime_content_type[] để lấy loại MIME của nó làm giá trị trả về, như thế này


Chạy tập lệnh đó, với điều kiện là bạn thực sự có các tệp như vậy, sẽ xuất ứng dụng/zip và hình ảnh/jpeg

Bạn muốn học PHP 7?

Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay

Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó

Phát hiện loại Nội dung MIME trong PHP thật dễ dàng với mime_content_type hoặc Fileinfo. Nhưng Fileinfo dưới dạng tiện ích mở rộng đôi khi không khả dụng trên máy chủ. Hàm mime_content_type muốn một đường dẫn đến hệ thống tệp làm đối số và không xử lý nếu chúng ta chỉ có một giá trị chuỗi. Gói này giúp dễ dàng phát hiện các loại mime của nội dung của một tệp hoặc chuỗi nhất định mà không có bất kỳ phụ thuộc tiện ích mở rộng nào

Cài đặt

Cài đặt gói dễ dàng thông qua nhà soạn nhạc

composer require intervention/mimesniffer

Cách sử dụng

Dưới đây là một số mẫu mã, để hiển thị cách thư viện được xử lý

use Intervention\MimeSniffer\MimeSniffer;
use Intervention\MimeSniffer\Types\ImageJpeg;

// detect given string
$sniffer = MimeSniffer::createFromString[$content];

// or detect given file
$sniffer = MimeSniffer::createFromFilename['image.jpg'];

// returns object of detected type 
$type = $sniffer->getType[]; 

$bool = $type->isBinary[]; // check if we have binary data
$bool = $type->isImage[]; // check if we are dealing with an image
$bool = $type->isVideo[]; // check video data was detected
$bool = $type->isAudio[]; // check if we have detected audio data
$bool = $type->isArchive[]; // check if an archive was detected
$type = [string] $type; // cast type to string [e.g. "image/jpeg"]

// you can also check, if the content matches a specific type
$bool = $sniffer->matches[new ImageJpeg];

// or check, if the content matches an array of types
$bool = $sniffer->matches[[ImageJpeg::class, ImageGif::class]];

// or check, if the content matches an array of type objects
$bool = $sniffer->matches[[new ImageJpeg, $type]];

Nếu bạn thích khởi tạo không tĩnh

use Intervention\MimeSniffer\MimeSniffer;

// create instance with constructor
$sniffer = new MimeSniffer[$content];

// with setter for given content
$type = $sniffer->setFromString[$other_content]->getType[];

// or with setter for filename
$type = $sniffer->setFromFilename['images/image.jpg']->getType[];

Hiện tại chỉ có thể phát hiện các loại tệp sau. Nhiều hơn nữa sẽ được thêm vào trong một bản phát hành tiếp theo

Hình ảnh

  • Hình ảnh được mã hóa dưới dạng JPEG thô hoặc ở định dạng tệp JFIF hoặc Exif
  • Tệp hình ảnh được mã hóa ở Định dạng trao đổi đồ họa [GIF]
  • Hình ảnh được mã hóa ở định dạng Đồ họa mạng di động [PNG]
  • Hình ảnh được mã hóa dưới dạng tệp BMP, định dạng bitmap
  • Hình ảnh được mã hóa ở Định dạng tệp hình ảnh hiệu quả cao [HEIC/HEIF]
  • Biểu tượng được mã hóa ở định dạng tệp ICO
  • Hình ảnh ở định dạng hình ảnh Google WebP
  • Đồ họa vectơ có thể mở rộng [SVG]
  • Định dạng tệp hình ảnh được gắn thẻ [TIFF]
  • Định dạng tệp tài liệu Photoshop được mã hóa hình ảnh [PSD]

lưu trữ

  • GZIP nén
  • tệp ZIP
  • kho lưu trữ RAR
  • tập tin TAR

Video

  • AVI
  • Video MPEG-1 và MPEG-2
  • Bộ chứa phương tiện MKV

âm thanh

  • tập tin MP3
  • tập tin FLAC

Khác

  • tài liệu PDF
  • Bộ chứa phương tiện OGG
  • Cơ sở dữ liệu SQLite
  • ứng dụng/octet-stream [nhị phân mặc định]
  • văn bản/đồng bằng [mặc định]

Đóng góp

Đóng góp được hoan nghênh. Vui lòng lưu ý các nguyên tắc sau trước khi gửi yêu cầu kéo của bạn

  • Thực hiện theo các tiêu chuẩn mã hóa PSR-2
  • Viết bài kiểm tra cho các chức năng mới và các tính năng được thêm vào

Giấy phép

Được cấp phép theo Giấy phép MIT

Bản quyền 2019 Oliver Vogel

Loại nội dung cho tệp PHP là gì?

PHP. hàm mime_content_type[]. Hàm mime_content_type[] là một hàm có sẵn trong PHP được sử dụng để lấy kiểu nội dung MIME của tệp. Thông số. Hàm này chấp nhận tham số duy nhất $file chỉ định đường dẫn của tệp mà chi tiết MIME cần tìm.

Loại MIME VS loại nội dung là gì?

content_type là bí danh của mimetype . Trước đây, tham số này chỉ được gọi là mimetype, nhưng vì đây thực sự là giá trị được bao gồm trong tiêu đề Kiểu nội dung HTTP, nên nó cũng có thể bao gồm mã hóa bộ ký tự, khiến nó không chỉ là một đặc tả kiểu MIME.

Kiểu nội dung tệp là gì?

Tiêu đề Content-Type được sử dụng để biểu thị loại phương tiện của tài nguyên . Loại phương tiện là một chuỗi được gửi cùng với tệp cho biết định dạng của tệp. Ví dụ: đối với tệp hình ảnh, loại phương tiện của nó sẽ là image/png hoặc image/jpg, v.v. Đáp lại, nó cho biết về loại nội dung được trả lại cho khách hàng.

Loại nội dung của tệp CSV là gì?

Với sự trợ giúp thêm từ mã nguồn Chromium, tôi tìm thấy mục đăng ký Windows cho các tệp CSV. Như mong đợi, loại nội dung cho tệp CSV được đặt thành 'application/vnd

Chủ Đề