генерация XML

Schlosser

Новичок
генерация XML

Добрый день!
Пишу скрипт-генератор новостной ленты.
Струкура корректна, однако объявление <?xml version="1.0" encoding="windows-1251"?> идет второй строчкой, первая пустая (смотрю в браузере Firefox исходный код).
IE версии 7.0 пишет:
Invalid xml declaration.
Line: 2 Character: 3
<?xml version="1.0" encoding="windows-1251"?>

Почему Line 2 не могу понять!
Если результат сохранить в файле ex.xml, удалить первую пустую строку то все гуд.



Ошибка: обьявление xml не в начале внешней сущности Источник: http://127.0.0.1/2008/xml1.php Строка 2, Символ 1 Исходный код: <?xml version="1.0" encoding="windows-1251"?>^

в браузер вывожу через
PHP:
echo $dom->saveXML();
использование trim() не помогает.
 

Schlosser

Новичок
1. Переводов строк до <?php и после ?> нет!
2. скрипт пересохранил в notepad++ в UTF без BOM результата не дало.

Отставить! Убрал строчку
PHP:
include "functions.php";
все стало на свои места!!

Всем спасибо!
 

Schlosser

Новичок
Фрагмент
PHP:
<?php
в файле functions.php начинался со второй строчки. Теперь с первой. Эти повсеместные нюансы столько времени отнимают!
 

Major

Новичок
А перед выводом чего-то во внешний поток неплохим тоном сичтается ставить

ob_clean()

а еще, писать все скрипты с незавершающим ярлыком "?>", тем более если скрипт куда-то инклудится.
 

Wicked

Новичок
Major
либо писать на другом языке программирования .-)
 

HraKK

Мудак
Команда форума
Wicked
Не изменю.
Это синтаксический сахар ведущий к раку пробелов.

-~{}~ 09.06.08 18:12:

А лишние пробелы вычисляются в первом же запуске.
 

StUV

Rotaredom
Это синтаксический сахар ведущий к раку пробелов.
да ладно
это как раз вполне нормальная фича - достаточно удобно использовать при корректном разделении логики и представления

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

Wicked

Новичок
HraKK
тогда почему эта тема до сих пор пользуется такой популярностью? :)
 

fixxxer

К.О.
Партнер клуба
у нас отсутствие закрывающего php тэга прописано в корпоративных coding standards ;)
 

HraKK

Мудак
Команда форума
да ладно
это как раз вполне нормальная фича - достаточно удобно использовать при корректном разделении логики и представления
Ага и очень удобно разводить рак кавычек и тд.
Это и есть синтаксический сахар. Удобно но не правильно.
а вот эта проблема иногда может завести в дикий дебаг
особенно если используется сторонний софт - в котором плохо ориентируешься
Причем тут мля стороний софт? Вы что можете влиять есть ли в сторонем завершающий теги или нет? Есть ли там пробелы или нет?
Не опускайтесь, плз до такого уровня в споре.


Wicked
Тема пользуется и будет как и многое другое дурное. Что надо дальше делать не правильно? Например на пхп 4 писать, да?
 

HraKK

Мудак
Команда форума
А я все равно не согласен :)))
Обьясняю.

Берем идеальную ситуацию:
1) Мы не ставим ?> - следим чтоб после Class{} не было ниодного пробела или перевода. Все отлично.
2) Мы ставим ?> - следим чтоб после ?> не было ниодного пробела или перевода. Все отлично.

Берем будни:
1) Мы не ставим ?> - иногда попадаються пробелы и переносы а то и не одни. Все работает и вроде как отлично. Но остаеться тот же синтаксический сахар о котором я и говорю. И фиг его кто-то когда-то уберет. Потому что "работает и ладно".
2) Мы ставим ?> - попадаються пробелы и переносы а то и не одни. Не работает иногда в некоторых ситуациях но они конечно и то что ты потратил 30 минут на дебаг, это конечно плохо. Но зато я уверен и буду уверен что после тестов у нас не будет ни единого пробела или перевода.
 

Wicked

Новичок
HraKK
еще прими во внимание, что проблему номер 2 часто фиксят путем тупого добавления ob_start(), а потом его убрать уже куда сложнее.
 

Alexandre

PHPПенсионер
Фрагмент <?php в файле functions.php начинался со второй строчки
это одна из распространеных ошибок

по моему мнению, раз имеется открывающий тег <?php значить должен быть и соответствующий закрывающий тег ?>

либо если мы придерживаемся позиции, что теги <?php ?> себя изжили, то надо долбить php.net с предложением перейти на перловый стиль:
( #!/bin/php ), сделав пхпешные теги НЕ Обязательными
 
Сверху