С нами с 13.07.02
Сообщения: 3113
Рейтинг: 1817
|
Добавлено: 28/04/06 в 18:15 |
Есть такой вот счетчик простейший:
Код: |
<?
$fn="counter.txt";
$d=fopen($fn,"r");
if(!flock($d,1)) exit();
$content=fread($d,filesize($fn));
flock($d,3);
fclose($d);
$data=explode("\n",$content);
$data[0]++;
$content=implode("\n",$data);
$f=fopen($fn,"a+");
if(!flock($f,2)) exit();
fseek($f,0);
ftruncate($f,0);
fwrite($f,$content);
fflush($f);
flock($f,3);
fclose($f);
?>
далее html
|
Все ли тут ок?
Меня вот смущает то, что если flock не проходит то отдается exit(); и собственно пустая страница, как сделать чтобы если flock не прошел просто грузился бы "далее html" т.е. пропустить этот кусок кода, можно конечно флажок поставить и далее грузить только если есть флажок, а можно проще?, не люблю сложные вложенные if'ы.
|
|
|
|
С нами с 07.12.05
Сообщения: 48
Рейтинг: 11
|
Добавлено: 28/04/06 в 18:24 |
попробуй так, должно работать ;)
Код: |
<?
$fn="counter.txt";
$d=fopen($fn,"r");
if(flock($d,1)) {
$content=fread($d,filesize($fn));
flock($d,3);
fclose($d);
$data=explode("\n",$content);
$data[0]++;
$content=implode("\n",$data);
}
$f=fopen($fn,"a+");
if(flock($f,2)) {
fseek($f,0);
ftruncate($f,0);
fwrite($f,$content);
fflush($f);
flock($f,3);
fclose($f);
}
?> |
|
|
|
|
С нами с 13.07.02
Сообщения: 3113
Рейтинг: 1817
|
Добавлено: 28/04/06 в 18:56 |
Да, блин, дурацкий получился вопрос
А вообще как, нормальный код? ничего там не смущает?
|
|
|
|
С нами с 04.11.05
Сообщения: 178
Рейтинг: 122
|
Добавлено: 28/04/06 в 23:05 |
бага: пока ты делаешь ++ другие пишут в этот файл.
Код: |
$f='./counter.txt';
if( $fp = @fopen($f,"rb+") && flock($fp,2) )
{
$cnt=intval(@fgets($fp));
rewind($fp);
fwrite($fp,++$cnt);
fclose($fp);
} |
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |