Czy istnieje szybki, prosty sposób sprawdzenia, czy plik jest ASCII lub binarny z PHP?Jak sprawdzić, czy plik jest ASCII lub Binary w PHP
Odpowiedz
Działa to tylko dla PHP> = 5.3.0 i nie jest w 100% niezawodny, ale hej, jest bardzo blisko.
// 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';
Doskonała odpowiedź. + 1 – Cosine
Łącze przerwane: http://php.net/manual/en/book.fileinfo.php –
prawdopodobnie powinien sprawdzić 'if (! $ Finfo) {echo" Nie powiodło się otwarcie bazy danychinfo "; wyjście(); } 'i nie zapomnij:' finfo_close ($ finfo); ... –
Ponieważ ASCII jest po prostu kodowaniem tekstu, z reprezentacją binarną, nie jest tak naprawdę. Można sprawdzić, czy wszystkie bajty są mniejsze niż 128, ale nawet to nie gwarantowałoby, że ma być zdekodowany jako ASCII. Dla wszystkich wiesz, że to jakiś zwariowany format obrazu lub zupełnie inne kodowanie tekstu, które również nie wykorzystuje wszystkich ośmiu bitów. Może jednak wystarczyć do twojego użytku. Jeśli chcesz tylko sprawdzić, czy plik jest prawidłowy ASCII, nawet jeśli nie jest to "plik tekstowy", na pewno wystarczy.
Powinieneś raczej sprawdzić typ MIME pliku, ale jeśli jesteś gotów, aby załadować plik do pamięci, może można sprawdzić, czy bufor składa się ze wszystkich do zadrukowania-znaków za pomocą coś takiego:
<?php
$probably_binary = (is_string($var) === true && ctype_print($var) === false);
Nie jest doskonały, ale może być przydatny w niektórych przypadkach.
Tabulatory i znaki powrotu karetki sprawią, że 'ctype_print()' zwróci FALSE, niestety. – dotancohen
- 1. Sprawdzanie, czy plik STL jest ASCII lub binarny
- 2. Jak sprawdzić, czy plik jest binarny?
- 3. Jak sprawdzić, czy plik jest gzip lub nie w java
- 4. PHP: jak sprawdzić, czy klient jest lokalny?
- 5. Jak sprawdzić, czy plik jest plikiem EXE lub DLL?
- 6. AppleScript: Jak sprawdzić, czy coś jest katalog lub plik
- 7. Jak sprawdzić .htaccess, czy PHP jest włączone?
- 8. jak sprawdzić, czy plik jest typu obrazu lub wideo w wersji php 5.2.9?
- 9. Jak sprawdzić, czy plik jest zwykłym tekstem?
- 10. Jak sprawdzić, czy słowo jest japoński lub angielski PHP
- 11. Jak sprawdzić, czy plik jest skompresowany gzip?
- 12. Jak sprawdzić ciąg, jeśli jest to ASCII, czy nie?
- 13. Jak sprawdzić, czy sesja PHP jest pusta?
- 14. Jak sprawdzić, czy plik Global.asax jest wywoływany
- 15. Jak sprawdzić, czy plik jest pusty?
- 16. Jak sprawdzić, czy plik jest obrazkiem?
- 17. PHP Jak sprawdzić, czy zmienna jest odniesieniem?
- 18. Jak sprawdzić, czy strona jest kategorią lub produktem w woocommerce?
- 19. Jak sprawdzić, czy plik node.js jest zainstalowany czy nie
- 20. Jak sprawdzić, czy ustawione jest wejście php: //?
- 21. Jak sprawdzić, czy plik lub katalog plików istnieje w bash?
- 22. jak sprawdzić, czy istnieje stała w php
- 23. Jak znaleźć plik php jest dostępny lub dostępny bezpośrednio?
- 24. jak sprawdzić, czy plik jest wybrany przy użyciu javascript?
- 25. Jak można sprawdzić, czy plik php został pomyślnie dołączony?
- 26. Jak sprawdzić, czy zmienna jest prymitywna w PHP
- 27. Jak sprawdzić, czy nazwa domeny jest rekordem CNAME w PHP
- 28. PHP LZW Binary Dekompresja Funkcja
- 29. Jak sprawdzić, czy połączenie jest resetowane przez peer w php?
- 30. Jak sprawdzić, czy plik lub katalog istnieje bez użycia fs.ist?
To pytanie zostało zadane wcześniej, ale zawsze zastanawiam się, dlaczego obchodzi Cię jego ascii lub binarny? – Pyrolistical
Podobny, ale nie duplikat. Ta ma łatwą, techniczną odpowiedź, podczas gdy domniemane identyczne pytanie jest znacznie trudniejsze. Istnieje duża różnica między pytaniem, czy plik jest w kodowaniu X, czy w ogóle w kodowaniu. –
Nie czytałem ponownie, te typy były tylko przykładami. Szuka tego samego binarnego i tekstowego. – Pyrolistical