PHP — проверить, что файл содержит только ASCII

Я пишу веб-приложение, в котором пользователь загружает zip-файл, содержащий файлы свойств и изображения.

Я хочу убедиться, что файлы свойств содержат только символы ASCII. Есть ли способ в PHP проверить весь файл и вернуть ошибку, если найден символ, отличный от ASCII?

Спасибо.


person talnicolas    schedule 27.07.2011    source источник
comment
Вы говорите о 127 символах US-ASCII?   -  person hakre    schedule 27.07.2011


Ответы (1)


Вы можете использовать:

  • mb_detect_encoding():

    mb_detect_encoding(file_get_contents($filename), 'ASCII', true) === false
    
  • Регулярное выражение:

    preg_match('/^[\x20-\x7e]*$/', file_get_contents($filename)) > 0
    
person rid    schedule 27.07.2011
comment
Спасибо, были некоторые проблемы с установкой mbstring, но это то, что я искал. - person talnicolas; 27.07.2011
comment
Примечание: это регулярное выражение обнаруживает только печатные символы ASCII. - person Karolis; 27.07.2011
comment
Обрабатывает ли это новые строки, возврат каретки, вкладки? - person user1279887; 22.07.2019