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
Форумы портала PHP.SU :: Версия для печати :: проблема с записью в файл
Форумы портала PHP.SU » PHP » Программирование на PHP » проблема с записью в файл

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

1. Zuldek - 24 Октября, 2010 - 17:10:09 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $file ="oprosdata.txt";
  3. $count = 1;
  4. $age_18 = 2;
  5. $age_30 = 3;
  6. $age_30_more = 4;
  7. $zagran = 5;
  8. $rf = 6;
  9. $activ = 7;
  10. $passiv = 8;
  11. $exp_avangard = 9;
  12. $noexp = 10;
  13.  
  14. $data =
  15.  
  16. "$count|$age_18|$age_30|$age_30_more|$zagran|$rf|$activ|$pas
  17. siv|$exp_avangard|$noexp";
  18. echo $data;
  19.  
  20. // Открыть файл, удалить содержимое и установить указатель
  21.  
  22. текущей позиции в начало файла
  23.  
  24. $fh = fopen($file, "w+") or die("File $file does not
  25. exist!");
  26. // Если файл существует и в него возможна запись
  27.  
  28. if (is_writeable($fh)) {
  29. // Записать содержимое $data в файл
  30.  
  31. fwrite($fh, $data);
  32.  
  33. // Закрыть файл
  34.  
  35. fclose($fh);
  36. echo "Запись произведена";
  37. }
  38. else
  39. {
  40. echo "невозможно открыть файл для записи";
  41. }
  42.  
  43. ?>


Уже вероятно, туплю, ибо вечер Огорчение, но скрипт выводит "невозможно открыть файл для записи", при этом файл существует и даже удаляется его старое содержимое((. Подскажите где ошибка пожалуйста(
2. Мелкий - 24 Октября, 2010 - 17:39:40 - перейти к сообщению
0) Результаты is_writeable кэшируются. возможно имеет смысл применить clearstatcache().
1) права на запись в файл есть у пользователя, от имени которого работает скрипт?
3. Zuldek - 24 Октября, 2010 - 17:48:13 - перейти к сообщению
Мелкий пишет:
0) Результаты is_writeable кэшируются. возможно имеет смысл применить clearstatcache().
1) права на запись в файл есть у пользователя, от имени которого работает скрипт?

Применение функции ничего не изменило, скрипт работает от админа Огорчение
Может это особые заморочки денвера?
4. OrmaJever - 24 Октября, 2010 - 17:57:48 - перейти к сообщению
Попробуй file_put_contents()
Если работаешь на винде то вот на все файлы стоят права на запись.
(Добавление)
Не когда не испоьзовал функцию is_writeable(), но мне каежтся параметром должно быть имя файла, а не то что вернёт fopen(). Подмигивание
5. Zuldek - 24 Октября, 2010 - 18:12:44 - перейти к сообщению
OrmaJever пишет:
Попробуй file_put_contents()
Если работаешь на винде то вот на все файлы стоят права на запись.
(Добавление)
Не когда не испоьзовал функцию is_writeable(), но мне каежтся параметром должно быть имя файла, а не то что вернёт fopen(). Подмигивание


Всё верно, в f]is_writeable()[/f] и проблема была. Больше не буду ей пользоваться. Она просто была единственным что помнил без справочника Закатив глазки Тема исчерпана.
6. Uchkuma - 24 Октября, 2010 - 19:33:26 - перейти к сообщению
Zuldek пишет:
Больше не буду ей пользоваться.
Интересно вы решаете проблемы )))
Вы просто использовали ее не в том месте. Нужно было сначала проверить файл с помощью is_writable, а уж потом, при успехе, открывать к нему поток.
7. JustUserR - 25 Октября, 2010 - 17:26:23 - перейти к сообщению
Zuldek пишет:
Больше не буду ей пользоваться
Для осуществления открутия дексрипора файла с заданными модификаторами доступа к нему - предварительная проверка возможности записи или чтения не является обязательной - в частности возможно открытие файла в режиме максимального доступа a+ которые обеспечит сохранение вложенной информации - а в случае отказа доступа объект ресурса будет содержать false-значение

 

Powered by ExBB FM 1.0 RC1