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

Форум PHP

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

 

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

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

тема: Порядковые числа (создание уникальных файлов)
 
 автор: Keks   (13.12.2006 в 08:41)   письмо автору
 
 

Как сделать такую фичу: при создании новых страниц, если папка пустая, то имя новой страницы, допустим, будет 001, если файлы в этой папке уже есть (у них числовые имена), то берется файл с самым высоким именем, и к значению имени прибавляется единица и получается новое имя. Т.е. если самое высокое имя файла в папке 003, то новый файл называется 004. Как это сделать?

   
 
 автор: tuder   (13.12.2006 в 10:00)   письмо автору
 
   для: Keks   (13.12.2006 в 08:41)
 

Страницы будут создаваться одним человеком? Или многими?
Проще всего очередной номер страницы (или последней) держать в отдельном файле, откуда и считывать.

   
 
 автор: cheops   (13.12.2006 в 14:44)   письмо автору
 
   для: Keks   (13.12.2006 в 08:41)
 

Хм... вообще говоря для генерации таких файлов в PHP (из C утащили) имеется специальная функция tempnam();
<?php
  $name 
tempnam("директория_с_файлами""префикс_для_файлов");
?>

   
 
 автор: Diablo_   (13.12.2006 в 15:22)   письмо автору
 
   для: cheops   (13.12.2006 в 14:44)
 

Но она может совпасть с тем, что уже там есть!
я бу использовал функцию time()

   
 
 автор: Keks   (13.12.2006 в 15:30)   письмо автору
 
   для: Diablo_   (13.12.2006 в 15:22)
 

ну согласись, что при просмотре страниц лучше видеть примено это: http://www.keks.net/showpage.php?page_id=002 чем это: http://www.keks.net/showpage.php?page_id=95215723545564

   
 
 автор: Niko2   (13.12.2006 в 16:14)   письмо автору
 
   для: Keks   (13.12.2006 в 15:30)
 

А в чем разница?
Имхо, запомнить стороннему человеку и то и другое одинаково не захочется.

   
 
 автор: cheops   (13.12.2006 в 16:53)   письмо автору
 
   для: Diablo_   (13.12.2006 в 15:22)
 

>Но она может совпасть с тем, что уже там есть!
Нет, эта функция гарантирует, что имя будет уникальным в данной директории.

   
 
 автор: cheops   (13.12.2006 в 17:13)   письмо автору
 
   для: Keks   (13.12.2006 в 08:41)
 

Можно поступить следующим образом
<?php 
  $dirname 
"index1";
  
// Открываем текущую директорию 
  
$dir opendir($dirname); 
  
// Читаем в цикле директорию 
  
while (($file readdir($dir)) !== false
  { 
    if(
is_file($dirname."/".$file)) $arr[] = $file;
  }
  if(empty(
$arr)) $number 1;
  else
  {
    
sort($arr);
    
$number $arr[count($arr) - 1] + 1;
  }
  
$fd fopen($dirname."/".sprintf("%03d"$number), "w");
  
// Запись в файл
  // ...
  // Закрываем файл
  
fclose($fd);
  
// Закрываем директорию
  
closedir($dir);
?>

   
Rambler's Top100
вверх

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