2010-06-15 6 views
2

Я работаю с созданным на заказ сценарием Joomla, который генерирует изображение из блоба в базе данных. Однако, когда мы переместили его с сервера Apache на сервер IIS, скрипт прерывается.Новая строка перед заголовком()

В результате расследования кажется, что теперь перед тем, как запускается функция заголовка, возникает разрыв строки, который выполняется при запуске (когда я прокомментирую часть изображения и выполняю эхо-тест); строка 2 исходного кода.

Я просматривал сценарий снова и снова, и через множество файлов в компоненте, и, похоже, не может найти, откуда эта новая строка. .

Я попытался с помощью ob_start() и многие аналогичные функции, но ничего не похоже на работу.

Я полностью из идеи s, и не знаю, куда обратиться.

Есть ли способ отслеживать, какие файлы вызывают на странице, возможно? Любые мысли о дальнейших шагах?

ответ

0

Будьте осторожны, возможно, это проблема с кодировкой. Откройте файл с помощью vim под Linux, чтобы узнать, есть ли там^M или что-то в этом роде.

+0

Идущие окна ... – MetalAdam

2

Остерегайтесь дополнительных пробелов в конце файлов PHP. Если файл PHP заканчивается более чем одним возвратом после последнего ?>, этот материал печатается независимо от того, где находится файл/был включен. Это распространенный источник ошибок в более крупных проектах PHP и будет отвечать вашим симптомам.

(Чтобы обойти это, некоторые из них начали со стандартом кодирования, который запрещает в своих исходных файлах последнего ?>, что совершенно законно PHP.)

+1

+1 Некоторые стиль руководства рекомендуют выходить из последний?> именно по этой причине. –

+0

Я проверил кучу файлов, чтобы проверить это. Однако я не полностью уверен в всех файлах, которые вызывают при запуске этого скрипта. Он работает через joomla, поэтому все вызывается через index.php, и я недостаточно осведомлен о полной структуре, чтобы знать каждый выполняемый файл. Есть буквально сотни файлов, которые участвуют в этом сайте, поэтому я стараюсь избегать их прохождения один за другим. Я просмотрел все связанные файлы и вынул лишние пробелы после тэга trailing?>. – MetalAdam

+0

Я только что проверил сайт, который я знаю как Joomla! пример. У них нет дополнительных пробелов в их HTML-источнике, поэтому я думаю, что это не Joomla! источник (конечно, не на 100%). – Boldewyn

Смежные вопросы