Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: html в переменной

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
darl
Отправлено: 05 Ноября, 2013 - 20:01:46
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Доброе время суток, подскажите пожалуйста, у меня сложная логика построений html таблицы и я решил таблицу конкатенацией собирать в переменной и в конце ее вывести через echo. Все работает, но сомнения не покидают в правильности реализации, т.к. таблица у меня может быть не маленькой соответственно и переменная будет иметь не малый размер, не отразится ли это в производительности или вообще верное решение?
 
 Top
biperch
Отправлено: 05 Ноября, 2013 - 20:35:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




правильно. все в переменную и один раз выводишь. частый вывод в stdout тормозит так что ты правильно делаешь.
 
 Top
DelphinPRO
Отправлено: 05 Ноября, 2013 - 20:39:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




хм, я вообще всю страницу в переменную собираю, потом вывожу. Правильно ли я делаю? хз, но проблем не было.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
darl
Отправлено: 06 Ноября, 2013 - 03:34:09
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




спасибо! успокоили.
 
 Top
deblogger
Отправлено: 06 Ноября, 2013 - 09:03:02
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Собирайте в массив. Массив сделайте объектом с методами которые сами в него будут все добавлять. В финале echo выведет на волшебный __toString() из которого вы все и вывалите обычным return join(PHP_EOL, get_object_vars($this));
 
 Top
darl
Отправлено: 06 Ноября, 2013 - 09:29:39
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




deblogger пишет:
Собирайте в массив. Массив сделайте объектом с методами которые сами в него будут все добавлять. В финале echo выведет на волшебный __toString() из которого вы все и вывалите обычным return join(PHP_EOL, get_object_vars($this));

Немного не понял, можно кратко написать этот объект, как понять "Массив сделайте объектом с методами" это в объекте создать массив и потом сеттером вставлять или преобразовать массив в объект (object)array()?
А в чем выигрыш вашего метода?
 
 Top
deblogger
Отправлено: 06 Ноября, 2013 - 09:33:28
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Писанины меньше и от структуры хтмля отвязаны. Можете сделать body, потом tfoot, затем thead и наконец собрав инфу про таблицу запихать ее в caption. А на выводе все будет как w3c.org хочет.
(Добавление)
Кстати, таблица любой размерности из результата запроса рендерится вот такой процедурой


PHP:
скопировать код в буфер обмена
  1. function echotable($result) {
  2.         echo '<table><tr style="font-weight:bold">';
  3.         while($field = $result->fetch_field()) echo '<td>' . $field->name;
  4.         while($row = $result->fetch_row()) echo '<tr><td>' . implode('<td>', $row);
  5.         echo '</table>';
  6. }

(Добавление)
Нет, про отвязку я конечно перебрал, потребуется класс посложнее. В рубрике про ООП говорят что подключить целиком класс построения DOM'а очень даже ничего. Я, конечно, сомневаюсь. Загляните в нее, там как раз про отрисовку таблицы тема есть.
 
 Top
LIME
Отправлено: 06 Ноября, 2013 - 10:19:15
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DelphinPRO пишет:
хм, я вообще всю страницу в переменную собираю, потом вывожу.
насколько помню ты говорил что как раз наоборот))
если надо то буферизацию применяешь а так в виде
не?)
 
 Top
deblogger
Отправлено: 06 Ноября, 2013 - 14:25:27
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


Аналогичное обсуждение возникло и в упомянутой рубрике. Я предложил эмпирический способ оценки потребности в генераторах хтмля: если данных больше чем тегов - теги надо генерить и подставлять в данные. Если тегов больше чем данных - данные надо генерить и подставлять в теги. По-моему вполне объяснимо и логично.

Если середина-наполовину, значит вы работаете без паттерна.
 
 Top
DelphinPRO
Отправлено: 06 Ноября, 2013 - 15:12:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB