Сделал операции над отдельными файлами и все их содержимое дописывал в $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) |
Есть другие предложения для тестирования скриптов без глюков? |
Его или переставить надо, или удалить Поставь че-нибудь нормальное. XAMPP например... юзал на виндах его пару лет назад - отличный полет. А вообще LAMP - твой верный друг
Спустя 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), хотя по логике от этого ничего не меняется. Логика оказалась права
Предположения насчет косяков со стороны "джентельменского набора" оправдались.
Заказчик скрипта:
Предположения насчет косяков со стороны "джентельменского набора" оправдались.
Заказчик скрипта:
Цитата |
Да, скрипт отлично работает. |
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 папки сервера. Будет красиво, удобно и работоспособно