Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: распространенный вопрос но всё же

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: запись строки в начало файла тхт
webmonstor
Отправлено: 24 Апреля, 2012 - 17:48:53
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Март 2012  
Откуда: Иркутск


Помог: 0 раз(а)




скрипт


#записываю в фаил
file_put_contents('1EE.txt',"ПИШУ ЧЁ ХАЧУ\r\n".file_get_contents('1EE.txt'));

проблема-выводит 2-а раза одну и ту же строку
переписал в надежде что будет лучше

$Z="file.txt";
$W=fopen($Z,"r"); // открываем для чтения
$text=fread($W,filesize($Z)); //читаем
fclose($W);
$what="ПИШУ ЧЕ ХАЧУ\r\n"; // строка
$f=fopen("file.txt","w"); // открываем для записи
// пишем нашу строку и к ней добавляем раннее содержимое файла
fwrite($f,$what.$text);
fclose($f);

такая же история что и с первым!
подскажите что делать
 
 Top
m4gz
Отправлено: 25 Апреля, 2012 - 09:03:15
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Конечно будет 2раза ты же в обоих случаях два раза записываешь данные попробуй так
и в первом варианте тоже действие


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
webmonstor
Отправлено: 25 Апреля, 2012 - 11:23:53
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Март 2012  
Откуда: Иркутск


Помог: 0 раз(а)




блин а точно )) ща попробую отпишусь
 
 Top
m4gz
Отправлено: 25 Апреля, 2012 - 11:26:46
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Удачи! Пользуйтесь тэгами с кодом а то читать не удобно


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
webmonstor
Отправлено: 25 Апреля, 2012 - 11:57:28
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Март 2012  
Откуда: Иркутск


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $Z="file.txt";
  2. $W=fopen($Z,"r"); // открываем для чтения
  3. $text=fread($W,filesize($Z)); //читаем
  4. fclose($W);
  5. $what="ПИШУ ЧЕ ХАЧУ\r\n"; // строка
  6. $f=fopen("file.txt","w"); // открываем для записи
  7. // пишем нашу строку и к ней добавляем раннее содержимое файла
  8. fwrite($f,$what);
  9. fclose($f);

=( не получилось всё то же самое если допустим добавляю строку вида 444444444
в тхт нормально 444444444 а вот выводит 444444444 ,44444444444444
не понятно откуда запятую берет,чего ему еще надо...
 
 Top
snikers987
Отправлено: 25 Апреля, 2012 - 12:44:12
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Данная проблема может быть из-за браузера, который отправляет два запроса, в часности это хром, возможно еще какие..


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
webmonstor
Отправлено: 25 Апреля, 2012 - 12:50:16
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Март 2012  
Откуда: Иркутск


Помог: 0 раз(а)




выходил со всех браузеров,даже с телефона,везде один и тот же результат,подскажите пожалуйста выход из данной ситуации!?
 
 Top
m4gz
Отправлено: 25 Апреля, 2012 - 20:41:03
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Я не очень понимаю зачем для добавления текста в начало вы используете 2 раза fopen() попробуйте открыть с модом rw предполагаю что в этом проблема, вот такой код наверно должен быть
PHP:
скопировать код в буфер обмена
  1.  
  2. $way="text.txt"
  3. if(($w=@fopen($way,"rw")!==false)
  4. {
  5.         fputs ($w, $data);
  6.         fclose ($w);
  7. }    
  8. else echo "error fopen $way";      
  9.  

в вашем случае будет наверно разумно использовать

а вообще есть file_put_contents() с режимом записи в начало, если я правильно помню.
(Добавление)
fputs это синоним fwrite


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
snikers987
Отправлено: 25 Апреля, 2012 - 21:21:15
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




m4gz нет такого режима.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Bio man
Отправлено: 25 Апреля, 2012 - 21:25:21
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




m4gz пишет:
а вообще есть file_put_contents() с режимом записи в начало
нету такого.
 
 Top
m4gz
Отправлено: 25 Апреля, 2012 - 22:03:29
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Да верно.., приснилось наверно Однако тогда


-----
http://www[dot]w3hub[dot]ru Q&A по программированию.
 
 Top
webmonstor
Отправлено: 26 Апреля, 2012 - 10:31:05
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Март 2012  
Откуда: Иркутск


Помог: 0 раз(а)




ага ща пробую
(Добавление)
m4gz пишет:
Конечно будет 2раза ты же в обоих случаях два раза записываешь данные


енто прибавление инфы к прочитанному в массив,без него перезаписывает,проверено! Улыбка
(Добавление)
PHP:
скопировать код в буфер обмена
  1. #записываю в фаил
  2. # присваиваю имя файла
  3. $Z="1EE.txt";
  4. # открываю фаил
  5. $W=fopen($Z,"r");
  6. # читаю фаил
  7. $text=fread($W,filesize($Z));
  8. # закрываю
  9. fclose($W);
  10. # инфа для записи
  11. $infa="СТРОЧКА\r\n";
  12. # открываю для записи
  13. $f=fopen("1EE.txt","w");
  14. # записываю инфу в фаил
  15. fwrite($f,$infa.$text);
  16. # устанавливаю смещение в файловом указателе на начало файла
  17. fseek($W, 0);
  18. # финиш-закрываю фаил
  19. fclose($f);
  20. ?>

не получилось

(Отредактировано автором: 26 Апреля, 2012 - 11:51:05)

 
 Top
Bio man
Отправлено: 26 Апреля, 2012 - 16:24:45
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Так в чем проблема?
PHP:
скопировать код в буфер обмена
  1. $sFileName = '1EE.txt';
  2. $sBefore = file_get_contents($sFileName);
  3. $sAdd = 'String, very long string!'. PHP_EOL;
  4. if(!file_put_contents($sFileName, $sAdd . $sBefore))
  5.     echo "Ошибка записи в $sFileName";
  6. else{
  7.     echo 'Данные добавлены!<br />';
  8.     echo file_get_contents($sFileName);
  9. }
Вот полностью рабочий вариант, сыроватый но зато понятный. Если не работает то это проблема не скрипта (по крайне мере нет оснований, что бы так думать) а либо твоих рук (где то в проекте наговнокодил) либо, что маловероятно, лаг сервера.

(Отредактировано автором: 26 Апреля, 2012 - 16:26:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB