Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
привет всем
помогите найти ошибку плз...
есть сайт.
в нем есть файл с темой. в нем есть возможность полностью проконтролировать вывод всего контента.
в том числе вызвать в нужном месте вывод блоков...
так вот.
функция для вызова блока выглядит вот так:
и вот в чем вопрос.
при таком выводе инфы у меня появляется на верху страницы перенос строки. откуда берется - неизвестно. причем в коде страницы его нет и небыло и неоткуда взяться...
пример того что получается в браузере можно посмотреть в картинке
в опере все работает правельно
в мазиле вот такая гадость((
так же прикрепепил страничку которая получается.. может поможет Прикреплено изображение (Нажмите для увеличения)
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
valenok
Отправлено: 15 Декабря, 2009 - 14:30:45
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
по исходнику пробела нет. значит проблема в рендеринге и стилях. попробуй hr
поменять margin и display:inline
----- Truly yours, Sasha.
Stierus
Отправлено: 15 Декабря, 2009 - 14:35:55
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
а <hr /> ситуацию не меняет ?
Вездеход
Отправлено: 15 Декабря, 2009 - 20:38:39
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
valenok пишет:
по исходнику пробела нет. значит проблема в рендеринге и стилях. попробуй hr поменять margin и display:inline
проблем не в том как именно написать..
если вместо тега hr написать что угодно - смысл не меняется...
многоуважаемый чемпион сказал что там появляется некий символ, который не видно просто в коде HTML, а вот нотпад++ (или тупо ворд) этот символ выводят...
а вот откуда он берется - не понятно. я все коды првоерил - без результатно(
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
valenok
Отправлено: 15 Декабря, 2009 - 21:49:53
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
И все браузеры видят эдакий символ, но не один из них его не отображает в исходниках страницы?
----- Truly yours, Sasha.
Вездеход
Отправлено: 15 Декабря, 2009 - 22:53:31
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
я тестил на 3х - опера выводит все корректно, ИЕ и мазила делают почему то перенос строки на месте этого символа...
проверьте сами если не верите - файлик я выше прикрепил
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
CenapaTop
Отправлено: 15 Декабря, 2009 - 23:03:45
Частый гость
Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009
Помог: 1 раз(а)
В notepad++ есть какая-то точка, между <body> и <hr>.
Вездеход
Отправлено: 15 Декабря, 2009 - 23:48:06
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
угу.. вопрос как ее убрать и откуда эта сволочь берется((
все свои коды перепроверил - ее нигде нет. это какая то функия генерит ее как то...
убрать ее тоже никак не получается
проверил вызов функции. все работает стабильно, т.е. данный мистический символ берется непонятно где и откуда, но он не имеет отношения именно к вызовам функций.
видимо где то еще косяк...
публикую коды дальше...
в ядре прописывается путь к шаблону.
потом он грузится через вот эту функцию:
может это как то влияет?? (Добавление)
в исходных кодах страницы опера показывает этот мистический символ оказывается...
и возникла новая проблема.
если сохранить странице которая получается в итоге - то код страницы меняется!
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
Stierus
Отправлено: 16 Декабря, 2009 - 08:50:21
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Цитата:
<? return_params('TITLE');?>
отдельно посмотри, что выдает?
valenok
Отправлено: 16 Декабря, 2009 - 09:26:09
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Не соответсвуют у тебя "должно быть" и "получается после сохранения"
В одном стили до body во втором после. Браузер сам их переставил ?
--
Едем дальше, файл твой сохранил. Хромиум сразу нашел в исходном коде какой-то символ. Удалив его hr встал на месте. Ищем откуда он взялся.
Вывелся он после <body> значит виноват show_block (top_services)
Выше ты привел код get_block, самого show_block я не вижу.
А если стереть return '<hr>'; и написать return "aoeu"; все встанет на место?
Может символ в редакторе не отображается, но он там где-то есть ?
Сотри сразу всю строку и напиши всю заного.
Если не поможет - давай читать show_block
----- Truly yours, Sasha.
Вездеход
Отправлено: 16 Декабря, 2009 - 13:34:26
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
Stierus пишет:
отдельно посмотри, что выдает?
тут проблем нет... я проверил по исходникам.
эта функция просто берет по ключу значение из массива и выдает... косяков нету) (Добавление)
valenok пишет:
Не соответсвуют у тебя "должно быть" и "получается после сохранения"
В одном стили до body во втором после. Браузер сам их переставил ?
да, в том то и дело - первый раз такое вижу...
valenok пишет:
Вывелся он после <body> значит виноват show_block (top_services)
Выше ты привел код get_block, самого show_block я не вижу.
//return $start.$name.$end; -вот так выводит без этого символа...
}
function show_block($name,$start='',$end=''){
echo get_block($name,$start,$end);
}
(Добавление)
valenok пишет:
А если стереть return '<hr>'; и написать return "aoeu"; все встанет на место?
Может символ в редакторе не отображается, но он там где-то есть ?
Сотри сразу всю строку и напиши всю заного.
Если не поможет - давай читать show_block
я полностью переписал блок. написал вывод заного...
пока мистический символ пропал...
щас дальше првоерю
зы. в исходниках блока этого символа все равно там не было!
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
valenok
Отправлено: 16 Декабря, 2009 - 13:49:10
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
include_once("blocks/top_services/block.php"); у тебя вызывается тут впервые. Ничего интересного там нет? Если вызвать дважды <?show_block('top_services');?> между двумя hr будет пробел ? (Добавление)
А, ну хорошо что все рашилось.
Возможно действительно попался какой-то наглый stx или еще какой нибудь eol символ
не отображаемый в редакторе. Хотя меня удивило что notepad++ его не заметил.
----- Truly yours, Sasha.
Вездеход
Отправлено: 16 Декабря, 2009 - 14:18:03
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
valenok пишет:
А, ну хорошо что все рашилось.
Возможно действительно попался какой-то наглый stx или еще какой нибудь eol символ
не отображаемый в редакторе. Хотя меня удивило что notepad++ его не заметил.
тестирование продолжается...
символ появляется в любом случае.
если после символа идет тег, который делает перенос строки (hr, div, p) то получается разрыв.
если перенос не нужен (тег span или вообще без тегов) то перенос и не видно... (Добавление)
новые подробности.
переписал вызов блоков...
до этого у меня система получала массивом названия блоков необходимых для работы и загружала только файл с "инструкциями" - ну чтобы прописать все первоначальные параметры.
после этого при вызове блока через функцию show(get)_block у меня подтягивался основной файл с кодом и уже выполнялась основная функция.
что теперь.
прописал чтобы в функциях файл этот не загружался, а грузился сразу вместе с файлом инструкций.
результат - теперь вывод идет правельно.
но это еще не все...
если сохранить страницу - шапка опять криво сохраняется (боди перед стилями идет).
и сразу после тега body появляются эти мистические символы, в количестве, равном количеству вызовов разных блоков... (Добавление)
новые подробности))
опера сохраняет страницу корректно, и добавляет эти мистические символы перед тегом HTML
мазила сохраняет все криво и вставляет после тега body
тестирование продолжается)) (Добавление)
у меня в файле index.php
есть такая запись:
сперва гружу ядро системы - все настройки, и все нужное
потом загружаю файл, ответственный за генерацию страницы.
потом вызываю функцию которая собственно и выводит саму страницу.
так вот.
если вызвать только ядро - проблем нет - символы не появляются.
если загрузить файл pager.php - то появляются 4 мистических символа (дальше ничего, так как вывода инфы нет)
если вызвать функцию return_page - то появляется 5й мистический символ...
больше 5 не выводится =) (Добавление)
итак, методом научного тыка выяснилось:
вот этот код возвращает 4 мистических символа. как и откуда берутся они не понятно.
тщательно проверил все 6 файлов - толку нет...
при этом не важно сколько загружать так блоков - при загрузке файла load.php от всех блоков - символ получается только один.
при загрузке файла block.php - символов образуется столько же, сколько и требуется загрузить блоков. (в данном случае 3)
так же 5й символ образуется вот здесь:
function return_page() {
include_once('pager/theme/page.tpl.php');
}
(Добавление)
скопировал этот мистический символ.
и вставил сюда, в форум
потом через исходный код страницы нашел его - это вот эта сволочь мне мешает:
На всякий случай (вдруг у кого что-то подобное будет) поделюсь, что же было: проблемным символом оказался FEFF - это ByteOrderMark, который некоторые редакторы добавляют в UTF-8 файлы
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.