|
43 / 17 / 4
Регистрация: 22.02.2012
Сообщений: 327
|
||||||||||||||||
Через подшаблон или через регулярное выражение?11.07.2013, 20:29. Показов 1648. Ответов 12
Метки нет (Все метки)
Здравствуйте.
Задача такая, вывести простую таблицу через шаблон. Проблема в том что кол-во строк таблице неизвестно. Как это лучше сделать? 1. Через шаблон и подшаблон. Шаблон структуры таблицы.
Читаем подшаблон. Необходимое кол-во раз заменяем метки. Склеиваем это в одну строку. Читаем шаблон таблицы. Заменяем в нем единственную метку на ранее полученную строку. 2.Через регулярное выражение. Шаблон один.
Читаем весь шаблон. Регулярным выражением получаем то что между "{@" и "@}". С этой работаем как с подшаблоном. (создаем строку с содержимым таблицы). Заменяем то что между "{@" и "@}" на содержимое таблицы. Удаляем "{@" и "@}". Понимаю что варианты возможно странные. Но все же интересует, как бы такую задачу решил профессионал. (Сам такое делаю впервые.)
0
|
||||||||||||||||
| 11.07.2013, 20:29 | |
|
Ответы с готовыми решениями:
12
Регулярное выражение в JS, пропущеное через htmlspecialchars - PHP Ввод даты через регулярное выражение Поиск тегов через регулярное выражение |
|
31 / 19 / 3
Регистрация: 07.10.2011
Сообщений: 98
|
|
| 11.07.2013, 23:46 | |
|
Не знаю, как профессионалы решат этот вопрос. Но должно быть нечто, что будет получать данные, которые потом занесутся в строки. Почему бы не использовать это нечто для формирования таблицы?
0
|
|
|
43 / 17 / 4
Регистрация: 22.02.2012
Сообщений: 327
|
|
| 11.07.2013, 23:58 [ТС] | |
|
Всмысле выводить строки циклом используя echo '<td>..</td>'?
Нет, мне такое не подходит. Говорят, нынче не модно выводить HTML через PHP. Нужно использовать шаблоны.
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||
| 12.07.2013, 00:06 | ||||||||||||
|
эмм.. Ну либо подшаблон, если хотите выделить (хотя 2-3 строчки я бы не стал выделять в отдельный файл),
либо писать тут же.. А что мешает выводить здесь же, без использования лишних замен в шаблонах?
Добавлено через 3 минуты Добавлено через 2 минуты а вот так уже не рекомендуется делать, как раз
0
|
||||||||||||
| 12.07.2013, 16:11 | |
|
Не по теме: Gabriel.exe, А потом Вам обязательно потребуются вложенные конструкции: {@ ... {@ ... @} ... {@ ... @} ... @} . Рассчитывайте сразу и на это.
0
|
|
|
43 / 17 / 4
Регистрация: 22.02.2012
Сообщений: 327
|
||
| 12.07.2013, 21:58 [ТС] | ||
|
Ну да с регулярными выражениями это конечно не айс метод.
Добавлено через 4 минуты Ведь при таком способе верстальщик не сможет увидеть что именно будет выводиться. Он ведь кажеться первый начинает работать. Следовательно никакого массива у него пока нет. (Или лично для себя он сначала напишет просто("холостые") теги, применит к ним стили, посмотрит чтобы это правильно выглядело, и только потом внесет в шаблон начинку с конструкциями?. А вообще условия и циклы в таком шаблоне этот работа верстальщика или программиста?)
0
|
||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||||||||
| 12.07.2013, 23:05 | |||||||||||||
Добавлено через 1 минуту Добавлено через 7 минут и вообще, "нельзя" - понятие растяжимое. Закрывающий тег ?>
0
|
|||||||||||||
|
30 / 30 / 7
Регистрация: 09.07.2013
Сообщений: 120
|
|||||||||||
| 12.07.2013, 23:44 | |||||||||||
|
Существуют и логика шаблона и логика кода.
Можно воспользоваться Smarty.
0
|
|||||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||||||
| 13.07.2013, 00:10 | ||||||||||||||||
|
Bobinho, вот вы заюзали код смарти. Итак, смотрим плюсы.
1. Использование шаблонизатора смарти (Ура!!!) Я больше не вижу плюсов. По синтаксису мне больше нравится твиг. Да и по скорости вроде тоже побыстрее. По данному использованию смарти мне не нравится Минусы: 1. Лишний цикл http://www.smarty.net/docs/en/... .while.tpl 2. Накапливаем вывод в переменную 3. Тоже самое "не пойми что" для верстальщика, в принципе. Далее, вспоминаем про открытые теги, которые по умолчанию открыты, и видим, практически, "урезанный твиг". Ну разве что без всяких вкусностей а-ля |escape и т.п.
Но я, хоть убей, не вижу ни одного плюса (ну разве что кроме "не php-файл") в использовании смарти таким образом. Вот, сравните с таким кодом:
Добавлено через 4 минуты Не по теме: в общем, думаю, я уже достаточно сказал о своей точке зрения (я не против шаблонизаторов, я против их нерационального использования). Так что делайте что хотите, считайте логикой for, foreach, echo, print, что угодно.. :) Удачи :)
0
|
||||||||||||||||
| 13.07.2013, 01:15 | |
|
0
|
|
|
30 / 30 / 7
Регистрация: 09.07.2013
Сообщений: 120
|
||||||||||||
| 13.07.2013, 09:03 | ||||||||||||
, отделить код от html, вот я предложил использовать смарти.Естественно, сколько людей, столько и мнений. Я просто предложил альтернативу и не пытаюсь навязать своё мнение. Это для верстальщика лучше?
![]()
0
|
||||||||||||
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 13.07.2013, 13:21 | |
|
Если собираетесь использовать Smarty только для того, чтобы было удобно верстальщику, то использовать его не нужно. Если писать всё "верно", то и на голом html c вкраплениями php нормальному верстальщику будет всё понятно, а малоквалифицированный и Smarty не поймёт.
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||||
| 13.07.2013, 23:15 | ||||||||||||||
Добавлено через 4 минуты ![]()
0
|
||||||||||||||
| 13.07.2013, 23:15 | |
|
Помогаю со студенческими работами здесь
13
Как через регулярное выражение узнать, присутствует ли в строке слеш? Возможно ли найти расположение подстроки в строке через регулярное выражение std::regex?
Регулярное выражение - после согласной или гласной должна идти гласная или согласная Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|