PDA

Просмотр полной версии : Создать файл, найдя свободную цифру для имени.


Gray_f0x
11.12.2008, 08:01
Как проверять значение имени файла увеличивая значение имени на плюс 1 до тех пор пока не будет найдено свободное значение, как только оно найдено создать файл с именем свободного значения.

Вот что вышло у меня :



$filenumber = 1;
$file = "index$filenumber.html" ;
echo $file;
if (is_file($file)):
do
{
$filenumber++;
}

while (is_file($file));

else :

создать свободный файл ;

endif;




Алгоритм таков:

проверить есть ли файл с именем 1.хтмл, если нету увеличить имя на +1 и проверить если файл с именем 2.хтмл, если нету, то создать и поместить в него введенную ранее инфу, если есть то увеличить еще на +1 или проверить есть ли 3.хтмл....

preda1or
11.12.2008, 08:23
<?php
$number=0;
$filename='prefix'.$number.'.dat';
while (file_exists($filename)) { $filename='prefix'.$number++.'.dat'; }
$f=fopen($filename,a);
fclose($f);
?>


Вот

Gray_f0x
11.12.2008, 08:34
while (is_file($file))
{
$file='index'.$number++.'.html';
}
$f=fopen($file,a);
fclose($f);

Warning: fclose(): supplied argument is not a valid stream resource

не угадал с правами ?

preda1or
11.12.2008, 08:39
я подправил свой пост, посмотри

Gray_f0x
11.12.2008, 08:45
спасибо! Все работает!

preda1or
11.12.2008, 08:46
Нз)

Gray_f0x
11.12.2008, 12:25
{
$number=0;
$file='index'.$number++.'.html';
while (is_file($file))
{
$file='index'.$number++.'.html';
}
//chmod(".\\$file", 0777);
$f=fopen($file,a,b) or die("shit");
//fopen($file,a,b) or die("shi3!2t!!!");
fwrite($f, $text) or die("shit");
fclose($f);
}

возник затуп.. файлы отлично создаются, но в них не пишется нужна мне инфа, но инфа нормально передается из другого скрипта... но именно fwrite не хочет писать в файл. В чем трабл ?

ss88
11.12.2008, 13:43
$f=fopen($file,a,b) or die("shit");
. но именно fwrite не хочет писать в файл. В чем трабл ?

Во первых, как уже написали, нужно использовать "а+", "w+"... Судя по всему ты хочешь записывать текст, так зачем же ты указываешь, параметром b, что это двоичные данные? Этот параметр по-умолчанию предназначен для автоопределения того, что будет записано, чтобы запись данных корректно работала на разных платформах