Алексей, во-первых, в BASH (ну мне так проще) сравнение != *[^0-9]* не делает RegExp. Поэтому [^0-9] бессмысленен, он не сработает как ожидалось. Во-вторых, вы можете сами написать ответ (когда код правильно заработает), и пометить его как решение.
И совсем другое дело, если ваши PHP-скрипты работают с базой данных (как правило MySQL, или какой другой SQL). Вот тут уже придётся помучаться, настраивая работу именно с базой данных...
Ипатьев, SunTechnik, AUser0, сначала не сказать, что нужно экранировать абсолютно все непечатные символы. Потом добавить, что и формат - совсем не голый текст. А по финишу ещё выяснится, что и язык должен быть не PHP, ага, ага...
Слава, ну надо-же какие умные! Просили закодировать перенос строки, и только перенос строки, а потом возмущаются, что неправильно всё поняли, и нужно кодировать вообще любые символы... Фи!
P.S. Бинарная запись всё запишет без потерь, шоб вы знали. Кодирование не понадобится.
sherl221, создание пустого архива может и не работать (тут авторы решили), возможно в него надо хоть что-нибудь положить... Ну это так, гадание на чаинках.
https://regexr.com/7s7rq