PHP работает с файлами - PullRequest
       17

PHP работает с файлами

1 голос
/ 10 ноября 2009

Я пытаюсь создать file based article system, и я хочу, чтобы папки были моими категориями, а файлы внутри - настоящими статьями. Но иногда мне нужны специальные символы в имени папки / файла (\/:*?", и на самом деле меня интересуют только двойные кавычки и знак вопроса). Есть ли способ сделать трюк ... что-то вроде & в HTML или что-то вроде этого. спасибо

Ответы [ 3 ]

3 голосов
/ 10 ноября 2009

Краткий ответ: Ваша операционная система может поддерживать такие имена файлов, но это не так.

Для вас не существует простого способа сделать что-то простое, например &. Вы можете сохранить реальное имя файла или создать таблицу преобразования таким образом, чтобы что-то вроде _____questionmark_____ конвертировалось в этот символ или что-то глупое, но тогда вы столкнулись с проблемами с этой конкретной строкой.

По сути, вы должны хранить заголовок отдельно от самого файла. База данных будет подходящим местом.

На более глубоком уровне, если вы задаете такой вопрос, я думаю, что можно с уверенностью сказать, что разрешение пользователям указывать имена файлов в вашей системе, вероятно, представляет большую угрозу безопасности.

1 голос
/ 10 ноября 2009

Есть только несколько специальных символов, которые не допускаются в именах файлов. так что держите свою собственную неанизированную последовательность для этих персонажей. Например, заменить все «?» с "#quest" перед созданием файлов и так далее. Есть ли обратное, когда вы читаете их, это хорошо? Insanitized означает некоторую комбинацию символов, которую мы не печатаем, например, «#quest».

0 голосов
/ 10 ноября 2009

Я бы порекомендовал использовать файл .htaccess для передачи имени файла в качестве аргумента в скрипт PHP. Затем скрипт должен найти статью в таблице поиска в базе данных, которая указывает на файл статьи.

...