Используйте mkdir, а затем поместите файлы в папку

У меня есть веб-сайт, на котором пользователи могут создавать новые «темы». У каждой темы есть папка (пример: www.example.com/chemistry). Я использую mkdir() для создания новой папки, но после того, как она создана, как я могу поместить файлы в папку, чтобы, когда кто-то переходит в папку химии, было что посмотреть? Поскольку я не нашел много информации о том, как это сделать, я предполагаю, что есть более популярный способ.


person kirby    schedule 07.01.2012    source источник
comment
Вы пытаетесь внедрить CMS? Тогда создание реальных физических папок на самом деле не выход.   -  person deceze♦    schedule 08.01.2012
comment
index.html и index.php обычно поддерживаются по умолчанию, поэтому вы можете создать файл для этого каталога с сообщением типа Hullo Wurld (или чем-то более подходящим). Или вы можете использовать таксономию Drupal или что-то еще.   -  person Jared Farrish    schedule 08.01.2012
comment
@deceze ТАК использует CMS? потому что, когда я задал этот вопрос, в URL-адресе появилась папка с идентификатором моего вопроса. если это CMS, не могли бы вы предоставить ссылку на дополнительную информацию?   -  person kirby    schedule 08.01.2012
comment
Вероятно, это не настоящая папка, а динамический URL-адрес, зайдите и погуглите ModRewrite или динамические URL-адреса.   -  person Prof    schedule 08.01.2012


Ответы (4)


SO использует CMS? потому что, когда я задал этот вопрос, в URL-адресе появилась «папка» с идентификатором моего вопроса.

В URL-адресе здесь отображается URL. Повторяйте за мной: http://stackoverflow.com/questions/8774143/use-mdir-and-then-put-files-in-the-folder — это URL! У него есть имя хоста, у него есть путь, у него могут быть параметры запроса. В нем нет папок!

По умолчанию на многих веб-серверах URL-адрес сопоставляется с папкой на жестком диске. Но это только один из способов сделать это. При посещении URL-адреса веб-сервер просто получает запрос "дайте мне любой сайт по URL-адресу http://stackoverflow.com/questions/8774143/use-mdir-and-then-put-files-in-the-folder". Веб-сервер может решить ответить на это, просмотрев папку, имя которой соответствует URL-адресу. Или он может просто вызвать программу, дать ей URL-адрес и вернуть любой ответ, который программа выдаст.

Попробуйте узнать о «перезаписи URL» и «красивых URL-адресах» и изучите существующие фреймворки, поскольку почти все фреймворки реализуют это.

person deceze♦    schedule 08.01.2012
comment
Да, mod_rewrite — это обычный способ зайти под веб-сервером Apache. - person deceze♦; 08.01.2012

вы можете копировать файлы:

copy($source, $desitination);

Загрузка файлов: см. move_uploaded_file

Запись файлов: см. fwrite

PS. Просто сначала проверьте, существует ли папка, например, if (file_exists($dir)) перед вызовом mkdir($dir), иначе вы получите предупреждения, или отключите mkdir(), как это @mkdir(), чтобы отключить все предупреждения

person Prof    schedule 07.01.2012
comment
функция копирования позволяет добавлять файлы только к другим файлам. он не позволяет добавлять файлы в каталоги - person kirby; 08.01.2012
comment
@user copy('foo', 'bar/foo') Там я скопировал файл в каталог. - person deceze♦; 08.01.2012
comment
Какие? Функция copy () копирует файл в место назначения в любом каталоге, если у каталога есть права на запись, но вместе это другая тема. - person Prof; 08.01.2012

Посмотрите на это: http://php.net/manual/en/function.chdir.php Изменив каталог, вы можете отобразить содержимое папки для своего пользователя.

person Jeremy D    schedule 07.01.2012

используйте функцию копировать

  copy($source, $dest);

Я не знаю, это ли ты имел в виду

person Ahmad Hajjar    schedule 07.01.2012