Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание папок PHP
 
 автор: volodumir   (18.06.2012 в 18:13)   письмо автору
 
 

Здравствуйте,
подскажите пожалуйста как создавать дерево папок.
mkdir() - создает одну папку.
Есть строка "/path/to/my/dir", вот нужно создать эту иерархию папок и в последнюю записать файл. Проблем с записью нет, а вот как создать папки одну в другой в зависимости от даной строки ("/path/to/my/dir"), не понимаю.

  Ответить  
 
 автор: Tamplier   (18.06.2012 в 18:34)   письмо автору
 
   для: volodumir   (18.06.2012 в 18:13)
 

Создаете папки циклом, сперва первую, потом вторую и т.д.
По принципу, создали папку, установили для нее права, переходите к следующей (вложенной в неё папке)...

Что то типа:


<?php
$arr 
explode('/'$path);

foreach(
$arr as $key => $val){

    
// Создаем папку и устанавливаем права

}

  Ответить  
 
 автор: volodumir   (18.06.2012 в 19:03)   письмо автору
 
   для: Tamplier   (18.06.2012 в 18:34)
 

Как пояснить скрипту что папку нужно создать в предыдуще созданной директории?

  Ответить  
 
 автор: Tamplier   (18.06.2012 в 19:13)   письмо автору
 
   для: volodumir   (18.06.2012 в 19:03)
 

Элементарно, путь для создания директории пишется от корня сервера.


<?php 

mkdir
("/home/www/test/"0700);
// цикл
mkdir("/home/www/test/papka2/"0700);

  Ответить  
 
 автор: volodumir   (18.06.2012 в 19:34)   письмо автору
 
   для: Tamplier   (18.06.2012 в 19:13)
 

То что от корня и так понятно, explode дает мне массив папок, как мне определить адрес папки которую создали предыдущей и в которой создать нужно следущую?

  Ответить  
 
 автор: speedsoft   (18.06.2012 в 19:42)   письмо автору
 
   для: volodumir   (18.06.2012 в 19:34)
 


<?php 
$arr 
explode('/'$path); 

$curr=array();
foreach(
$arr as $key => $val){ 
    
$curr[]=$val;
    
mkdir("/home/www/".implode('/',$curr)."/"0700);

  Ответить  
 
 автор: volodumir   (18.06.2012 в 19:55)   письмо автору
 
   для: speedsoft   (18.06.2012 в 19:42)
 

Спасибо

  Ответить  
 
 автор: Tamplier   (18.06.2012 в 19:59)   письмо автору
 
   для: speedsoft   (18.06.2012 в 19:42)
 

Проверка на пустое имя директории не помешает...


<?php 
$arr 
explode('/'$path); 

$curr=array();
foreach(
$arr as $key => $val){ if(!empty($val)){
    
$curr[]=$val;
    
mkdir("/home/www/".implode('/',$curr)."/"0700);
}} 

  Ответить  
 
 автор: volodumir   (18.06.2012 в 21:10)   письмо автору
 
   для: Tamplier   (18.06.2012 в 19:59)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования