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

Форум PHP

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

 

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

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

тема: как перезаписать файл средствами php
 
 автор: udaf   (26.08.2005 в 13:52)   письмо автору
 
 

решил написать свой первый скрипт на php для этого выюрал вроде-бы простую задачу(счетчик посешения страницы) информация откуда записывается в внешний файл
но вместо перезаписи происходит дозапись
вот мой скрипт
$file=fopen("schet.txt","r+");
if(!$file)
{
$make_file=fopen("schet.txt","w+");
echo("make");
}
$number=fread($file,10);
if(!$number)
{
echo("not open");
}
else
{
echo($number);
}
$number++;

echo("<br>".$number." после инкремента");

fwrite($file,$number);
fclose($file)

Подскажите что мне изменить?

   
 
 автор: Bronepoz[)   (26.08.2005 в 13:57)   письмо автору
 
   для: udaf   (26.08.2005 в 13:52)
 

$make_file=fopen("schet.txt","w+"); поменять на $make_file=fopen("schet.txt","w");

   
 
 автор: udaf   (26.08.2005 в 14:10)   письмо автору
 
   для: Bronepoz[)   (26.08.2005 в 13:57)
 

я поменял эту строку но результат по прежнему такой-же
эта строка используется 1 раз или вообще не используется(если файл создан)
Видимо надо менять этот параметр в другом месте
$file=fopen("schet.txt","r+");

   
 
 автор: cheops   (26.08.2005 в 14:47)   письмо автору
 
   для: udaf   (26.08.2005 в 14:10)
 

Не очень понятно почему используется fopen два раза - зря также читаете и пишите в один дискриптор. Лучше использовать что-то вроде
<?php
  $file
=fopen("schet.txt","r+");
  if(!
$file) exit("Файл не открыт");
  
$number=fread($file,filesize("schet.txt"));
  
fclose($file);

  if(!
$number)
  {
    echo(
"not open");
  }
  else
  {
    echo(
$number);
  }
  
$number++;

  echo(
"<br>".$number." после инкремента");
 
  
$file=fopen("schet.txt","w");
  
fwrite($file,$number);
  
fclose($file)
?>

   
 
 автор: udaf   (26.08.2005 в 16:06)   письмо автору
 
   для: cheops   (26.08.2005 в 14:47)
 

fopen используется или планируется использовать только 1 а второй используется в случае если результатом первого дискриптора было folse я использовал его для создания файла в случае если он не существует
а про использование 2 дискрипторов я не догадался
После исправление мой скрипт отлично заработал.
Спасибо всем кто помогал мне в его разработке

   
Rambler's Top100
вверх

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