[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создать директорию
zuher
if(is_dir($folder_oblast)) {
mkdir('/target/'.$folder_oblast.'/'.$folder_gorod);
} else {
mkdir('/target/'.$folder_oblast, 0755);
mkdir('/target/'.$folder_oblast.'/'.$folder_gorod, 0755);


Пытаюсь создать папку вываливается вот такая ошибка

Parse error: syntax error, unexpected '/', expecting ')'

Что делаю не верно ? )))



Спустя 6 минут, 29 секунд (3.04.2011 - 21:37) nugle написал(а):
if(is_dir($folder_oblast)) {
mkdir('./target/'.$folder_oblast.'/'.$folder_gorod);
} else {
mkdir('./target/'.$folder_oblast, 0755);
mkdir('./target/'.$folder_oblast.'/'.$folder_gorod, 0755);


так попробуй!

Спустя 1 минута, 48 секунд (3.04.2011 - 21:39) Snus написал(а):
zuher
Ошибка еще показывает строку, на которой допущена ошибка. Покажи ее.
nugle
Ты хоть понял, что написал?

Спустя 6 минут, 3 секунды (3.04.2011 - 21:45) zuher написал(а):
mkdir('/target/'.$folder_oblast.'/'.$folder_gorod);

вот та самая строка )))

я делаю проверку, если папки с названием города не существует, то создаю папку с областью, потом в ней папку с городом

Спустя 5 минут, 32 секунды (3.04.2011 - 21:51) Snus написал(а):
  mkdir('/target/'.$folder_oblast.'/'.$folder_gorod, 0755);

а так?

Спустя 11 минут, 3 секунды (3.04.2011 - 22:02) nugle написал(а):
Snus
нет!просто у меня иногда изза путей проблемы бывают!

Спустя 6 минут, 24 секунды (3.04.2011 - 22:08) zuher написал(а):
Цитата (Snus @ 3.04.2011 - 18:51)
  mkdir('/target/'.$folder_oblast.'/'.$folder_gorod, 0755);

а так?

Да ты прав дружище )))) Каюсь бестолков, скрипт перестал выдавать ошибки, но папки все равно не создаёт
$folder_gorod=transliterate($gorod);
$folder_oblast=transliterate($oblast);
if(is_dir($folder_oblast))
{
mkdir('/target/'.$folder_oblast.'/'.$folder_gorod, 0755);
}
else
{
mkdir('/target/'.$folder_oblast, 0755);
mkdir('/target/'.$folder_oblast.'/'.$folder_gorod, 0755);
if (is_readable('/target/info.txt')) {$fh = fopen('/target/info.txt', "r"); } else { exit(); }
if ( is_writeable('/target/'.$folder_oblast.'/'.$folder_gorod) ) {
$text="<p>Приветствуем тебя, житель города $gorod !!!</p>";
$text="$text$fh";
$file = fopen ('/target/'.$folder_oblast.'/'.$folder_gorod.'/info.php',"w+");
if ( !$file )
{echo("<p class='стиль2'>Нет доступа к файлу, проверьте права на папке</p>");}
else
{fputs ( $file, $text);}
fclose ($file);
}
mkdir('/target/'.$folder_oblast, 0755);
}
// конец если город папка пустой


Ну ка кто самый внимательный ))) Ткните дядьку носом

Спустя 20 минут, 24 секунды (3.04.2011 - 22:28) Snus написал(а):
Права на директорию target какие?

Спустя 8 минут, 19 секунд (3.04.2011 - 22:37) zuher написал(а):
права в норме, на денвере по умолчанию все на распашку )))

Спустя 31 секунда (3.04.2011 - 22:37) Invis1ble написал(а):
zuher
У тебя вобще тот блок else выполняется?
Добавь к mkdir() or die(), примерно так:
mkdir('/target/'.$folder_oblast, 0755) or die('Could not make dir ' . $folder_oblast);

Спустя 1 минута, 48 секунд (3.04.2011 - 22:39) Invis1ble написал(а):
zuher
Цитата
права в норме, на денвере по умолчанию все на распашку )))

А денвер разве не только под виндой идет? А что под виндой можно так права устанавливать?
И кстати, для кроссплатформенности лучше использовать вместо слеша DIRECTORY_SEPARATOR в путях.

Спустя 8 секунд (3.04.2011 - 22:39) Snus написал(а):
zuher
Причем здесь денвер? Ты директорию как создал?
В общем допиши перед выполнением скрипта
chmod('/target/', 0777);

Спустя 18 минут, 22 секунды (3.04.2011 - 22:58) zuher написал(а):
Ради эксперимента убрал вообще все условия, стало ещё веселее )))
Все переменные есть, все заполнено, елементарное echo их рисует, но !!!


chmod('target/', 0777); //line 42
mkdir('target/'.$folder_oblast, 0755); //line 43
mkdir('target/'.$folder_oblast.'/'.$folder_gorod, 0755); //line 44
if (is_readable('target/info.txt')) {$fh = fopen('target/info.txt', "r"); } else { exit(); }
if ( is_writeable('target/'.$folder_oblast.'/'.$folder_gorod) ) {
$text="<p>Приветствуем тебя, житель города $gorod !!!</p>";
$text="$text$fh";
$file = fopen ('target/'.$folder_oblast.'/'.$folder_gorod.'/info.php',"w+");
if ( !$file )
{echo("<p class='стиль2'>Нет доступа к файлу, проверьте права на папке</p>");}
else
{fputs ( $file, $text);}
fclose ($file);
}


пробовал варианты /target/ и просто target/
выдает вот такие ошибки:
Warning: chmod() [function.chmod]: Arg list too long in X:\home\instant17\www\target\index.php on line 42

Warning: mkdir() [function.mkdir]: No such file or directory in X:\home\instant17\www\target\index.php on line 43

Warning: mkdir() [function.mkdir]: No such file or directory in X:\home\instant17\www\target\index.php on line 44

Спустя 9 минут, 21 секунда (3.04.2011 - 23:07) Invis1ble написал(а):
zuher
Цитата
The mode is 0777 by default, which means the widest possible access. For more information on modes, read the details on the chmod page.
mode is ignored on Windows.
Note that you probably want to specify the mode as an octal number, which means it should have a leading zero. The mode is also modified by the current umask, which you can change using umask.

Вот тебе подробная трассировка:
define('DS', DIRECTORY_SEPARATOR);
file_exists('target' . DS) or die('Директория target не существует');
is_dir('target' . DS) or die('target - не директория');
mkdir('target' . DS . $folder_oblast, 0755) or die('Невозможно создать директорию ' . $folder_oblast);
mkdir('target' . DS . $folder_oblast . DS . $folder_gorod, 0755) or die('Невозможно создать директорию ' . $folder_gorod);

Спустя 8 минут, 47 секунд (3.04.2011 - 23:16) zuher написал(а):
Цитата (Invis1ble @ 3.04.2011 - 20:07)
Вот тебе подробная трассировка:
<pre class="sh_sourceCode" rel="php"><span class="sh_function">define</span><span class="sh_symbol">(</span><span class="sh_string">'DS'</span><span class="sh_symbol">,</span> <span class="sh_keyword">DIRECTORY_SEPARATOR</span><span class="sh_symbol">);</span>
<span class="sh_function">file_exists</span><span class="sh_symbol">(</span><span class="sh_string">'target'</span> <span class="sh_symbol">.</span> DS<span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_string">'Директория target не существует'</span><span class="sh_symbol">);</span>
<span class="sh_function">is_dir</span><span class="sh_symbol">(</span><span class="sh_string">'target'</span> <span class="sh_symbol">.</span> DS<span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_string">'target - не директория'</span><span class="sh_symbol">);</span>
<span class="sh_function">mkdir</span><span class="sh_symbol">(</span><span class="sh_string">'target'</span> <span class="sh_symbol">.</span> DS <span class="sh_symbol">.</span> <span class="sh_variable">$folder_oblast</span><span class="sh_symbol">,</span> <span class="sh_number">0755</span><span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_string">'Невозможно создать директорию '</span> <span class="sh_symbol">.</span> <span class="sh_variable">$folder_oblast</span><span class="sh_symbol">);</span>
<span class="sh_function">mkdir</span><span class="sh_symbol">(</span><span class="sh_string">'target'</span> <span class="sh_symbol">.</span> DS <span class="sh_symbol">.</span> <span class="sh_variable">$folder_oblast</span> <span class="sh_symbol">.</span> DS <span class="sh_symbol">.</span> <span class="sh_variable">$folder_gorod</span><span class="sh_symbol">,</span> <span class="sh_number">0755</span><span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_string">'Невозможно создать директорию '</span> <span class="sh_symbol">.</span> <span class="sh_variable">$folder_gorod</span><span class="sh_symbol">);</span></pre>

Попробовал так, и даже попробовал так:

define('DS', DIRECTORY_SEPARATOR);
file_exists(DS .'target' . DS) or die('Директория target не существует');
is_dir(DS .'target' . DS) or die('target - не директория');
mkdir(DS .'target' . DS . $folder_oblast, 0755) or die('Невозможно создать директорию ' . $folder_oblast);
mkdir(DS .'target' . DS . $folder_oblast . DS . $folder_gorod, 0755) or die('Невозможно создать директорию ' . $folder_gorod);


умирает сразу фразой "Директория target не существует"
хотя она существует и скрипт лежит именно в ней, пути пробовал и от корня и без корня, все равно не существует

и попробовал создать /target/target
результат один

Спустя 4 минуты, 36 секунд (3.04.2011 - 23:20) Invis1ble написал(а):
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', str_replace('\\', DS, $_SERVER['DOCUMENT_ROOT']) . DS);
file_exists(ROOT . 'target' . DS) or die('Директория target не существует');
is_dir(ROOT . 'target' . DS) or die('target - не директория');
mkdir(ROOT . 'target' . DS . $folder_oblast, 0755) or die('Невозможно создать директорию ' . $folder_oblast);
mkdir(ROOT . 'target' . DS . $folder_oblast . DS . $folder_gorod, 0755) or die('Невозможно создать директорию ' . $folder_gorod);

Разумеется, код создаст директории, если в корневой директории сервера находится директория target

Спустя 4 минуты, 51 секунда (3.04.2011 - 23:25) zuher написал(а):
Ура )))
Теперь подскажи дружище, если я эту конструкцию переложу на реальный хостинг запарок не будет?
Не так я ещё сведущ в таких вопросах )))

Спустя 5 минут, 15 секунд (3.04.2011 - 23:30) Invis1ble написал(а):
zuher
Запарок не будет, если конечно на директорию target будут установлены соответствующие права, разрешающие запись в нее.
Совет: почитай про пути (относительные и абсолютные), у тебя вся запара в них была, насколько я понял.

Спустя 5 часов, 54 минуты, 17 секунд (4.04.2011 - 05:25) ИНСИ написал(а):
Вообще, используй функцию: file_put_contents. Будет намного легче все.

Спустя 4 часа, 40 минут, 8 секунд (4.04.2011 - 10:05) neadekvat написал(а):
velbox, не помню, чтобы она каталоги создавала.

Спустя 39 минут, 21 секунда (4.04.2011 - 10:44) ИНСИ написал(а):
neadekvat она и не создает каталоги, она создает файлы.

Спустя 1 минута, 29 секунд (4.04.2011 - 10:46) neadekvat написал(а):
velbox, ну, а тема как называется? А вторую страницу автору какой код показывают?

Спустя 11 минут, 25 секунд (4.04.2011 - 10:57) ИНСИ написал(а):
neadekvat вообще-то, я говорю по коду в целом.

P.S Читать заголовки я умею.

Спустя 28 минут, 45 секунд (4.04.2011 - 11:26) neadekvat написал(а):
Цитата (velbox @ 4.04.2011 - 11:57)
вообще-то, я говорю по коду в целом.

И где ж там создание файлов?

Спустя 1 час, 8 минут, 47 секунд (4.04.2011 - 12:35) zuher написал(а):
Цитата (neadekvat @ 4.04.2011 - 08:26)
Цитата (velbox @ 4.04.2011 - 11:57)
вообще-то, я говорю по коду в целом.

И где ж там создание файлов?

Есть там и создание файлов ))) В новом каталоге автоматически создается файл info.php
ну это так к слову, спасибо ребята за помощь огромное
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.