[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с файлами
Doszhan
Добрый день

Сделал операции над отдельными файлами и все их содержимое дописывал в $base, посредством $base .= $line, где $line содержимое отдельного файла в формате строки.

Для проверки в конце пишу echo $base;

Все нормально. На всякий случай несколько раз обновляю страницу (перезапускаю скрипт) - нормально. Теперь надо создать файл и записать в нее $base.


echo $base;
$fp = fopen('base.html', 'w');
fwrite ($fp, $base);
fclose ($fp);


Запустил скриптик - все нормально, в файле нужные данные. Запускаю скрипт еще раз - и тут полная каша, данные дублируются, еще раз обновляю - еще больше данных и т.д.

Немного пишу на C++ и такое поведение шокировало :huh:



Спустя 4 минуты, 54 секунды (22.11.2010 - 07:14) kirik написал(а):
Денвер?

Спустя 2 часа, 12 минут, 31 секунда (22.11.2010 - 09:27) linker написал(а):
Поведение конечно странное, попробуй иначе
file_put_contents('base.html', $base);

Спустя 1 час, 34 минуты, 9 секунд (22.11.2010 - 11:01) vergin написал(а):
попробуй так:

$fp = fopen('base.html', 'w+');

Спустя 1 час, 29 минут, 59 секунд (22.11.2010 - 12:31) Doszhan написал(а):
kirik, да, Денвер. Есть другие предложения для тестирования скриптов без глюков?

Ничего из вышеперечисленных не помогло.

Отправил заказчику, посмотрю что он скажет.

Спустя 16 минут, 55 секунд (22.11.2010 - 12:48) vergin написал(а):
если не сложно - кинь весь скрипт

Спустя 35 секунд (22.11.2010 - 12:48) linker написал(а):
Еще момент, каким образом инициализируется переменная $base. Что-то мне подсказывает, что прежде бы сделать $base = '';

Спустя 5 минут, 1 секунда (22.11.2010 - 12:53) vergin написал(а):
Цитата

Еще момент, каким образом инициализируется переменная $base. Что-то мне подсказывает, что прежде бы сделать $base = '';


хм, а разве операция конкатенации не делает автоматическое преобразование переменной в строку?
Цитата

$base .= $line

Спустя 6 минут, 51 секунда (22.11.2010 - 13:00) linker написал(а):
Да, но если в $base уже что-то есть какое-то левое значение, то оно никуда не денется при
$base .= $line
.

Спустя 8 минут, 51 секунда (22.11.2010 - 13:09) vergin написал(а):
так а какая разница, что в $base находиться, если в итоге это будет строка. Ну будет в ней какая-то белиберда до сцепления строк. Какая разница, что писать в файл в текстовом формате? или ты имеешь ввиду какие-то спецсимволы?

Спустя 20 минут, 45 секунд (22.11.2010 - 13:30) linker написал(а):
Это только мое предположение, ибо чудес не бывает, а левые данные в файле таки появляются. Давай больше кода.

Спустя 3 часа, 22 минуты, 11 секунд (22.11.2010 - 16:52) kirik написал(а):
Цитата (linker @ 22.11.2010 - 05:30)
ибо чудес не бывает

Да это денвер косячит.

Цитата (Doszhan @ 22.11.2010 - 04:31)
Есть другие предложения для тестирования скриптов без глюков?

Его или переставить надо, или удалить smile.gif Поставь че-нибудь нормальное. XAMPP например... юзал на виндах его пару лет назад - отличный полет. А вообще LAMP - твой верный друг wink.gif

Спустя 41 секунда (22.11.2010 - 16:53) linker написал(а):
А причем здесь Denwer? Они свой PHP слабали что ли?

Спустя 20 минут, 59 секунд (22.11.2010 - 17:14) vergin написал(а):
ИМХО, лучше вообще Apache, PHP, MySQL самому вручную ставить и настраивать

Спустя 1 минута, 15 секунд (22.11.2010 - 17:15) Basili4 написал(а):
В денвере 3 такой же похапе как и везде.

Спустя 6 минут, 55 секунд (22.11.2010 - 17:22) Nikitian написал(а):
Цитата (vergin @ 22.11.2010 - 14:14)
ИМХО, лучше вообще Apache, PHP, MySQL самому вручную ставить и настраивать

Чем лучше?

Спустя 33 минуты, 41 секунда (22.11.2010 - 17:56) vergin написал(а):
гибкость, как при установке компонентов(можно совмещать различные версии продуктов), так и при настройке Apache, PHP и мускула. Лично я не вижу смысла, ставить денвер, а потом лезть в httpd.conf и подстраивать его под себя(тоже самое и по-поводу настроек PHP и MySQL)

Спустя 14 минут, 13 секунд (22.11.2010 - 18:10) Doszhan написал(а):
linker, да, я это тоже на всякий случай пробовал "инициализировать" строку (не знаю уместно ли применять этот глагол в php), хотя по логике от этого ничего не меняется. Логика оказалась права smile.gif

Предположения насчет косяков со стороны "джентельменского набора" оправдались.

Заказчик скрипта:
Цитата
Да, скрипт отлично работает.


LAMP можно запускать через флешку?

Спустя 5 часов, 43 минуты, 32 секунды (22.11.2010 - 23:53) kirik написал(а):
Цитата (linker @ 22.11.2010 - 08:53)
Они свой PHP слабали что ли?

Без понятия че они там собираются, но ты мог наверное заметить если появляется топик с волшебным багом, то это будет 99% проблема в денвере. Этот топик лишь очередное подтверждение что денвер кривой.

Цитата (Doszhan @ 22.11.2010 - 10:10)
LAMP можно запускать через флешку?

Всмысле? Поставить на флэшку и с нее загружаться? Можно конечно. Можно через virtualbox какой-нибудь arch linux запустить без гуи (чтобы не жрал системные ресурсы) и запускать все с него. Причем под виндой можно создать шаровую папку для сайтов (aka www) а в виртуальной машине смонтировать ее вместо стандартной www папки сервера. Будет красиво, удобно и работоспособно smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.