Добрый день. Разрабатывается приложение на php. Есть к нему документация с требованиями. В приложении имеется функция по нахождению определенных файлов в заданном каталоге, но при этом в требованиях не указано, что файлы/пути к каталогу могут или не могут содержать кириллицу. Т.к. я не являюсь программистом и не владею техническими знаниями в разработке ПО на php, я хочу узнать, стоит ли вносить поправки в документацию с требованиями о том, что разрабатываемое приложение на php должно поддерживать имена путей и распознавать файлы используемые в названиях кириллицу? Или же приложение написанное на php по умолчанию распознает символы как на латинице так и на кириллице и не надо использовать доп. инструменты / команды при создании ПО?
P.S. В доп. информации прописано, что для работы приложения необходимо установленное и включенное расширение mbstring. Это значит что php приложение сможет распознавать и работать не с ASCII символами в любом виде и месте?
Это не дело разработчиков как они будут называться, а дело тех кто будет пользоваться приложением. И надо заранее все моменты прописать.
если это юзерские файлы и важно сохранить название, то файлы можно хранить под некими другими именами, а оригинальное имя держать в базе данных. Обычно так и делают. Если вообще не важно, как файлы назывались, и важно только прочитать их, то можно при загрузке менять им имя.
Если есть двоякое толкование и возможность сделать не так - то обязательно пропишите все нюансы, в том числе и кодировку
Файлы могут называться с исп. англ. и русского символов. Названия менять нельзя. Надо чтобы приложение могло распознавать эти символы и пути к ним, если они использовали русский алфавит. Это да, но как написал выше уже прописано, что необходимо использовать расширение mbstring. Вопрос в том подразумевает ли оно уже то, что приложение сможет читать русский символы? Просто если да, то я укажу избыточные требования, которые уже были заложены в необходимости использования данного расширения (это про читаемость русского алфавита). Или наличие данного расширения не дает возможность работы php приложению с русскими символами, я имею ввиду что все равно надо дополнительно "кодить" эту фичу, просто mbstring инструмент который дает эту возможно реализовать, либо же сам по себе установленный как расширение mbstring уже позволяет работать с символами русского алфавита?
оригинальное название сохраняется в бд и файл можно будет скачать с оригинальным названием но хранится файл на сервере под номером допустим --- Добавлено --- да, mbstrings позволят конвертить одну кодировку в другую. тут фишка в том, что хyй знает, что там на сервере в файловой системе творится т.е. файл присылается и отдельно присылается его название. ты обычно можешь его сохранить в папочку, но вот выживет ли оригинальное название при этом - не факт. это раз два, это дико несекурно хранить пользовательские файлы под оригинальным названием. это вообще очень опасно. три, они могут друг друга перезаписать случайно, ведь ты сохраняешь название! четыре, напихивание в одну папку много файлов - плохо. файлы надо размазывать по нескольким папкам так, чтобы в каждой не копилось больше нескольких тысяч файлов. Это удобно делать имея возможность изменять имя файла. Поэтому я рекомендую тебе изначально настроиться на то, что файлы ложатся на хард под техническим названием, а пользовательское идёт в бд, где хранится для этого файла, этого юзера, этого проекта и т.п. Когда юзер просит список - ты ему отдаёшь его оригинальные названия и дальше он с ними работает. и всё. а на серваке они лежат под хешами или юникидами, распиханные по папкам ровным слоем.
Программисты не используют кириллицу в именах своих файлов. ПМСМ, не обязательно писать об этом если речь об исходных файлах проекта. Что касается пользовательских файлов, т.е. загружаемых через браузер, нельзя сохранять файл на диск с именем, полученным из браузера хотябы потому, что это имя может повториться. Вы же не хотите перезаписать файл чем-то новым?!!! Есть и другие очень неприятные нежданчики. Вывод: Оригинальное имя сохраняется только в базе, а файл записывается с искусственным именем, типа af2e387d1.dat. Об этом можно написать, если выши разрабы не очень опытны. Когда нужно отдать файл пользователю на скачивание, подставляют оригинальное имя в заголовке. PHP: header('Content-Disposition: attachment; filename=' . $originalFilename); Ну или используются готовые библиотеки/фреймворки где всё это уже решено. Да прибудет с вами сила! --- Добавлено --- Да, приложение сможет читать руссие символы. Однако в именах файлов русские символы лучше не использовать, а ограничиться набором ASCII.