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

Форум PHP

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

 

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

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

тема: Создание файла в директории
 
 автор: Kront   (03.08.2005 в 03:19)   письмо автору
 
 

Здраствуйте все!
Вот такая проблемка у меня:
создаю директорию addnews, затем в скрипте мне надо её открыть и создать файл в ней с расширением .php, код такой:

$addnews="addnews";
$date=substr($date,0,11);
$zag=substr($zag,0,79);
$news=substr($news,0,1024);
$dir=opendir($addnews);
if (!$dir)
{
echo "Директория не открыта";
}
$file=fopen("$date"."php","w+");
if (!$file)
{
echo "Файл не создан";
}

Скрипт читает нормально без ошибок, а файл не создаётся!
Подскажите пожалуйста, что я не так делаю?!

   
 
 автор: Football   (03.08.2005 в 13:41)   письмо автору
 
   для: Kront   (03.08.2005 в 03:19)
 

А замем вот это "$date". Если это переменная то она должна быть без каовычек!

   
 
 автор: cheops   (03.08.2005 в 13:46)   письмо автору
 
   для: Football   (03.08.2005 в 13:41)
 

Можно и в кавычках... просто подставится значение переменной в строку...

   
 
 автор: Kront   (04.08.2005 в 12:28)   письмо автору
 
   для: Football   (03.08.2005 в 13:41)
 


"$date"."php"

Таким образом я создаю файл с именем
$date
и расширением php
И представим, что директория уже есть с данным именем, но созданный файл туда не прописывается, а прописывается в текущую директорию, откуда работает скрипт, - в этом вся и проблема!

   
 
 автор: cheops   (04.08.2005 в 12:33)   письмо автору
 
   для: Kront   (04.08.2005 в 12:28)
 

Тогда вам необходимо явно указать путь до директории. Т.е. вместо
<?php
$file
=fopen("$date"."php","w+");
?>

писать
<?php
$file
=fopen("$addnews/$date"."php","w+");
?>

Так функция opendir() также не устанавливает текущей директории, за это несёт ответственность функция chdir().

   
 
 автор: cheops   (03.08.2005 в 13:44)   письмо автору
 
   для: Kront   (03.08.2005 в 03:19)
 

Функция opendir не создаёт директорию, её создаёт функция mkdir.

   
 
 автор: napTu3aH   (05.08.2005 в 21:00)   письмо автору
 
   для: Kront   (03.08.2005 в 03:19)
 

поможет это или нет, но у меня был такой прикол:

хотел копировать файл и ставить ему имя из переменной

Copy($File, "$ImgDir/".basename("$name.jpg"));

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

$id_name="$name.jpg";
Copy($File, "$ImgDir/".basename("$id_name"));

попробуй задать имя файла с расширением в переменной
а потом ее использовать.

$fdate="$date.php"
$file=fopen("$fdate","w+");

   
Rambler's Top100
вверх

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