Có cách nhanh chóng, đơn giản để kiểm tra xem tệp là ASCII hoặc nhị phân với PHP không?Cách kiểm tra xem tệp có phải là ASCII hoặc nhị phân trong PHP
Trả lời
Điều này chỉ hoạt động đối với PHP> = 5.3.0 và không đáng tin cậy 100%, nhưng hey, nó khá gần gũi.
// return mime type ala mimetype extension
$finfo = finfo_open(FILEINFO_MIME);
//check to see if the mime-type starts with 'text'
return substr(finfo_file($finfo, $filename), 0, 4) == 'text';
Câu trả lời hoàn hảo. + 1 – Cosine
Liên kết bị hỏng: http://php.net/manual/en/book.fileinfo.php –
có lẽ nên kiểm tra 'if (! $ Finfo) {echo" Mở tệp cơ sở dữ liệu tệp tin không thành công "; lối thoát(); } 'và đừng quên:' finfo_close ($ finfo); '... –
Vì ASCII chỉ là mã hóa cho văn bản, với biểu diễn nhị phân, không thực sự. Bạn có thể kiểm tra rằng tất cả các byte đều nhỏ hơn 128, nhưng ngay cả điều này cũng không đảm bảo rằng nó được thiết kế để được giải mã dưới dạng ASCII. Đối với tất cả các bạn biết đó là một số định dạng hình ảnh điên, hoặc một mã hóa văn bản hoàn toàn khác nhau mà cũng không sử dụng tất cả tám bit. Nó có thể đủ để sử dụng của bạn, mặc dù. Nếu bạn chỉ muốn kiểm tra xem một tệp có phải là ASCII hợp lệ hay không, ngay cả khi nó không phải là "tệp văn bản", nó chắc chắn sẽ đủ.
Bạn có lẽ nên kiểm tra Mimetype của tập tin, nhưng nếu bạn sẵn sàng để tải các tập tin vào bộ nhớ, có thể bạn có thể kiểm tra để xem nếu bộ đệm bao gồm tất cả-in-nhân vật sử dụng một cái gì đó như:
<?php
$probably_binary = (is_string($var) === true && ctype_print($var) === false);
Không hoàn hảo, nhưng có thể hữu ích trong một số trường hợp.
Các tab và trả về vận chuyển sẽ làm cho' ctype_print() 'return FALSE, thật không may. – dotancohen
- 1. Kiểm tra xem tệp có phải là nhị phân hoặc ASCII với Node.js không?
- 2. Cách kiểm tra xem tệp có phải là nhị phân không?
- 3. PHP kiểm tra xem tệp có phải là hình ảnh
- 4. Cách kiểm tra xem tệp có phải là tệp nhị phân và đọc tất cả các tệp không phải là tệp không?
- 5. Cách kiểm tra xem tệp có phải là hình ảnh
- 6. kiểm tra xem cây có phải là cây tìm kiếm nhị phân không
- 7. linux + xác minh xem tệp có phải là văn bản hoặc nhị phân
- 8. Kiểm tra xem luồng có phải là tệp zip
- 9. Kiểm tra xem NSURL có phải là Tệp cục bộ
- 10. Kiểm tra xem đối số đã qua có phải là tệp hoặc thư mục trong BASH
- 11. Kiểm tra xem tệp từ xa có phải là XML được định dạng tốt với PHP
- 12. Kiểm tra xem đây có phải là
- 13. Làm cách nào để kiểm tra xem System.Net.WebClient.DownloadData có tải xuống tệp nhị phân không?
- 14. Kiểm tra xem biến có phải là ngày có Twig
- 15. Làm cách nào để kiểm tra xem biến có phải là nguyên thủy trong PHP
- 16. Cách kiểm tra xem một tên miền có phải là CNAME trong PHP
- 17. \ x00 có nghĩa là gì trong tệp nhị phân?
- 18. PHP kiểm tra xem tệp có tồn tại và không phải là thư mục
- 19. cách kiểm tra xem tệp có phải là thư mục hoặc tệp thông thường trong python không?
- 20. "min" và "max" trong hàm này để kiểm tra xem cây nhị phân có phải là BST hợp lệ không?
- 21. Làm cách nào để kiểm tra xem tệp có phải là hình ảnh không?
- 22. Kiểm tra chiều dài chuỗi nhị phân?
- 23. Cách kiểm tra xem java.lang.reflect.Type có phải là Enum
- 24. "grep" offset của chuỗi ascii từ tệp nhị phân
- 25. Cách kiểm tra xem tệp .txt có ở định dạng ASCII hoặc UTF-8 trong môi trường Windows không?
- 26. Kiểm tra xem tệp có phải là thư mục hay chỉ là một tệp
- 27. Kiểm tra xem một chuỗi có phải là số
- 28. Chức năng kiểm tra xem chuỗi có phải là ngày
- 29. Kiểm tra xem hình ảnh có phải là JPEG
- 30. Cách kiểm tra xem tệp được tải lên có phải là hình ảnh không có loại mime không?
Điều này đã được hỏi trước, nhưng tôi luôn tự hỏi, tại sao bạn quan tâm nếu ascii hoặc nhị phân của nó? – Pyrolistical
Tương tự, nhưng không trùng lặp. Điều này có một câu trả lời dễ dàng, kỹ thuật, trong khi câu hỏi giống hệt nhau là khá khó khăn hơn. Có một sự khác biệt lớn giữa việc hỏi liệu một tệp có đang mã hóa X hay không, trong bất kỳ mã hóa nào. –
Không đọc lại, những loại đó chỉ là ví dụ. Anh ấy đang tìm kiếm cùng một thứ nhị phân vs văn bản – Pyrolistical