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

Форум PHP

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

 

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

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

тема: Создание уникального имени файла
 
 автор: cheops   (20.09.2005 в 12:08)   письмо автору
 
 

Это продолжение темы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5848

Всем привет, помогите начинающему. Искал везде так и не нашёл поэто вот решил спросить.
У меня директория /text/ там все текстовые файлы со статьями. имена файлов a1.txt, a2.txt, a3txt..... при добавлении текстового файла в директорию скрипт считывает документы выстраивает их по дате создания и выводит заголовок и часть текста, заголовок формирую в ссылку для открытия документа полностью в соседней части страницы.
Вопрос: как сделать так, чтобы при добавлении через форму текста в новый документ, документу присваивалось имя +1, т.е. а9.txt, a10txt.... ?

   
 
 автор: cheops   (20.09.2005 в 12:17)   письмо автору
 
   для: cheops   (20.09.2005 в 12:08)
 

При помощи регулярных выражений следует обработать имя переменной и в файле и извлечь цифру.
<?php
  $file 
'а9.txt';
  
preg_match("|[\d]+|i",$file,$out);
  echo 
$out[0];
?>

Вы всё равно сканируете всю директорию - следует завести переменную которую сравнивать с полученной цифрой, если цифра больше переменной - присваивать ей значение. Таким образом к концу цикла у вас будет максимальное испльзуемое в имени файла значение. Останется только прибавить к нему единицу и сформировать имя нового файла.

PS Как вариант в таких случаях используют также время в UNIXSTAMP-формате (число секунд прошедшее с 1 янвая 1970 года), которое можно получить при помощи функции time().
<?php
  $filename 
time().".txt";
?>

Это также обеспечивает уникальное имя, если новые сообщения добавляются реже чем 1 сообщение в секунду.

   
 
 автор: tim   (23.09.2005 в 16:58)   письмо автору
 
   для: cheops   (20.09.2005 в 12:17)
 

спасибо cheops, вы очень помогли мне...

   
Rambler's Top100
вверх

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