1. darl - 05 Ноября, 2013 - 20:01:46 - перейти к сообщению
Доброе время суток, подскажите пожалуйста, у меня сложная логика построений html таблицы и я решил таблицу конкатенацией собирать в переменной и в конце ее вывести через echo. Все работает, но сомнения не покидают в правильности реализации, т.к. таблица у меня может быть не маленькой соответственно и переменная будет иметь не малый размер, не отразится ли это в производительности или вообще верное решение?
2. biperch - 05 Ноября, 2013 - 20:35:09 - перейти к сообщению
правильно. все в переменную и один раз выводишь. частый вывод в stdout тормозит так что ты правильно делаешь.
3. DelphinPRO - 05 Ноября, 2013 - 20:39:04 - перейти к сообщению
хм, я вообще всю страницу в переменную собираю, потом вывожу. Правильно ли я делаю? хз, но проблем не было.
4. darl - 06 Ноября, 2013 - 03:34:09 - перейти к сообщению
спасибо! успокоили.
5. deblogger - 06 Ноября, 2013 - 09:03:02 - перейти к сообщению
Собирайте в массив. Массив сделайте объектом с методами которые сами в него будут все добавлять. В финале echo выведет на волшебный __toString() из которого вы все и вывалите обычным return join(PHP_EOL, get_object_vars($this));
6. darl - 06 Ноября, 2013 - 09:29:39 - перейти к сообщению
deblogger пишет:
Собирайте в массив. Массив сделайте объектом с методами которые сами в него будут все добавлять. В финале echo выведет на волшебный __toString() из которого вы все и вывалите обычным return join(PHP_EOL, get_object_vars($this));
Немного не понял, можно кратко написать этот объект, как понять "Массив сделайте объектом с методами" это в объекте создать массив и потом сеттером вставлять или преобразовать массив в объект (object)array()?
А в чем выигрыш вашего метода?
7. deblogger - 06 Ноября, 2013 - 09:33:28 - перейти к сообщению
Писанины меньше и от структуры хтмля отвязаны. Можете сделать body, потом tfoot, затем thead и наконец собрав инфу про таблицу запихать ее в caption. А на выводе все будет как w3c.org хочет.
(Добавление)
Кстати, таблица любой размерности из результата запроса рендерится вот такой процедурой
(Добавление)
Кстати, таблица любой размерности из результата запроса рендерится вот такой процедурой
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- function echotable($result) {
- echo '<table><tr style="font-weight:bold">';
- while($field = $result->fetch_field()) echo '<td>' . $field->name;
- echo '</table>';
- }
(Добавление)
Нет, про отвязку я конечно перебрал, потребуется класс посложнее. В рубрике про ООП говорят что подключить целиком класс построения DOM'а очень даже ничего. Я, конечно, сомневаюсь. Загляните в нее, там как раз про отрисовку таблицы тема есть.