Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как создать файл в определённом каталоге?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: При условии, что сценарий находится в папке admin
Itan
Отправлено: 08 Октября, 2008 - 09:47:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте! Подскажите, пожалуйста, как создать файл в каталоге? Такая конструкция не идёт, создаёт отдельно папку и файл, а не папку с файлом:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mkdir ( "1", '0755' );
  4. $kat = opendir ( "1" );
  5. $file = fopen ( "1.php", 'w' );
  6. fwrite ( $file, "Всем привет\n" );
  7. fclose ( $file );
  8. closedir ("$kat");
  9. ?>
  10.  

P.S. Код может быть неправильным, т.к. пишу по памяти.
Спасибо.
 
 Top
valenok Модератор
Отправлено: 08 Октября, 2008 - 10:43:57
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




fopen ( "1.php", 'w' );

Где находится файл 1.php ?


-----
Truly yours, Sasha.
 
My status
 Top
Itan
Отправлено: 08 Октября, 2008 - 10:50:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Этого файла нет, он создаётся сам, или нужно сначала touch("1.php");?
 
 Top
valenok Модератор
Отправлено: 08 Октября, 2008 - 10:52:36
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Где находится файл или Где вы его создаёте


-----
Truly yours, Sasha.
 
My status
 Top
Itan
Отправлено: 08 Октября, 2008 - 11:03:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Блин.чёт не доганяю
кароче корневая папка, в ней сценарий, который создаёт папку 1, и должен (по моему замыслу) создать в этой папке файл 1.php
 
 Top
valenok Модератор
Отправлено: 08 Октября, 2008 - 11:06:06
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




ок, перефразирую:

Формулировка 1: Покажите мне, где вы указали своему сценарию где создать файл.
Формулировка 2: Откуда ваш сценарий должен узнать где создать файл ?


-----
Truly yours, Sasha.
 
My status
 Top
Itan
Отправлено: 08 Октября, 2008 - 11:09:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




так вот в том то и дело, что не знаю как указать, я думал, что открыв папку с помощью opendir() можно туда записывать файлы
 
 Top
valenok Модератор
Отправлено: 08 Октября, 2008 - 11:14:37
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Где вы указали скрипту где создать файл ?
Логика должна подсказывать что это там же где вы указали скрипту что нужно вообще создать файл.

А теперь откройте документацию этой фции и посмотрите что делает функция opendir
чтоб больше сами функционала не придумывали.


-----
Truly yours, Sasha.
 
My status
 Top
Itan
Отправлено: 08 Октября, 2008 - 11:38:09
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Хм хорошо, тогда как указать сценарию, где создавать файл?
 
 Top
valenok Модератор
Отправлено: 08 Октября, 2008 - 12:58:06
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




прописать фции создания путь - где создать файл.
Откройте документацию наконец. Посмотрите примеры


-----
Truly yours, Sasha.
 
My status
 Top
Champion Супермодератор
Отправлено: 08 Октября, 2008 - 20:24:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




или смените текующий каталог на тот, где надо создать файл, или напишите полный путь к файлу
 
 Top
Itan
Отправлено: 09 Октября, 2008 - 10:19:53
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Разобрался. Смысл такой: юзер вводит название папки, права на эту папку, название файла. Затем создаётся такая папка, такой файл, затем файл копируется в эту папку и удалятся. Пример: сценарий лежит в корне сайта (ну, у меня вертуальный пока), создаёт папку test и файл test.php, затем копирует этот файл в папку test, и удаляет его из корня.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $dir="test";
  4. $prava="0755";
  5. $file="test.php";
  6.  
  7. mkdir ("$dir", $prava);
  8. $fp=fopen ("$file", 'w');
  9. fwrite ($fp, "Строка");
  10. fclose ($fp);
  11.  
  12. $new_dir= "$dir/$file";
  13. copy ("$file", "$new_dir");
  14. unlink ("$file");
  15. ?>
  16.  

(Добавление)
Теперь другой вопрос. Например, в корне сайта ничего нет, кроме сценария. И если я ввожу в форму не просто имя папки, а имя вложенной папки (например dir/dir1), то должна сначала создаться папка dir, а затем уже папка dir1. Вроде всё просто, можно воспользоваться поиском подстроки (если содержится слеш, то создать сначала одну папку, затем в ней вторую), но если два слеша, например dir/dir1/dir2, как указать что если 2 слеша, то создать две папки (dir, dir1)?
 
 Top
Champion Супермодератор
Отправлено: 09 Октября, 2008 - 10:45:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Itan пишет:
оздаёт папку test и файл test.php, затем копирует этот файл в папку test, и удаляет его из корня.

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

Другая ситуация: сковородка стоит на плите, задача та же.
Физик: зажечь огонь, разбить яйца, поссолить, подождать.
Математик: Вешаем сковородку на стенку, задача сводится к предыдущей.

В данном случае вы как математик))
(Добавление)
Отвечаю дальше. Если 2 слеша, то есть функция explode? которая возвращает массив. Вам будет нужено последовательно создать папки, именами которых будут элементы этого массива
 
 Top
Itan
Отправлено: 09 Октября, 2008 - 11:03:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Радость Математик, не математик, просто по-другому не знаю как сделать...))
Насчёт функции explode огромное спасибо! Но, можете привести пример, как осуществить создание папки, если значение равно dir/dir1? Пожалуйста..
 
 Top
valenok Модератор
Отправлено: 09 Октября, 2008 - 11:08:38
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Объясните как вы понимаете вот это:
$new_dir= "$dir/$file";


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB