-1 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 38
|
||||||
1 | ||||||
Составление регулярного выражения14.09.2015, 20:12. Показов 1398. Ответов 10
Метки нет Все метки)
(
Привет.
Есть теги
Задача распознать какая цифра введена в group=X Для этого собираюсь составить регулярное выражение которое будет распознавать теги {group=Любое_ЧИСЛО}{/group} Затем присвоить это число скажем переменной $name1 Ну а далее уже делать с этим числом что угодно. Например условие "если группа пользователя == $name1, заменяем всё между {group=$name1} и {/group} на '' " Таким образом скрывая контент от определённой группы пользователей. Проблема в том, что я не могу никак составить выражение которое
0
|
14.09.2015, 20:12 | |
14.09.2015, 20:12 | |
Ответы с готовыми решениями:
10
Понимание регулярного выражения Формат регулярного выражения Написание регулярного выражения |
![]() 4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
14.09.2015, 22:34 | 2 |
hihihiman, зачем делать свой
0
|
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
|
|
14.09.2015, 23:12 | 3 |
Например PHP и JS.
И тратить на себя время если tpl в php не закэшировать. С чем справится банальный if или чуть менее банальная функция, ну или если уж совсем оригинальничать то класс. Что люди пишут шаблонизаторы потому, что это модно. Есть конструктивные соображения зачем этот шаблонизатор или просто потому что нужен? Если уж так сильно хочется разделить интерфейс и логику на разные ЯП чем жабаскрипт не угодил? Все уже даже "скачено и настроено".
0
|
![]() 4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
14.09.2015, 23:27 | 4 |
AncientPenguin, в принципе в написании собственного шаблонизатора нет ничего плохого. Во многих случаях создание собственного велосипеда - в первую очередь полезный опыт для себя. Но при этом нужно понимать, что задача не простая, и вот так "на коленке" 1 регуляркой ее не решить.
0
|
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
|
|
15.09.2015, 00:23 | 5 |
Jewbacabra, плохое есть в использовании шаблонизатора просто потому, что так написано в учебнике. Возможно человеку просто хочется другой синтаксис и есть свободное время, но я хотел донести мысль, что у шаблонизатора должна быть причина. Делать его просто потому что надо (а так многие наверняка делают, как с MVC) это глупость.
0
|
-1 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 38
|
||||||
15.09.2015, 01:41 [ТС] | 6 | |||||
Во первых что за оффтоп? Ни одного совета не увидел.
Во вторых больше минусов мне! Теперь по делу. Я изучаю язык и мне необходим опыт. Мне необходимы знания о том, как решают задачи разные люди, что более, а что менее эффективно, в каких ситуациях. В данный момент у меня времени достаточно и мне интересно попробовать свои силы в написании фрэймворка. Не для тебя, AncientPenguin, не для людей, не для продаж. Для себя. Для обогащения навыками. И насколько я читал, все называют шаблонизатором гнилую биомассу с своей логикой... Мне же хочется для себя разделить документ на код и шаблоны. При чём в шаблоне я не желаю видеть никаких действий кроме пожалуй определения групп. И то, мне это необходимо сейчас лишь потому, что я не знаю как это реализовать и хочу узнать. К тому же, разве я говорил о оптимизации кода, о том зачем он мне вообще нужен? Вроде бы не говорил. Поэтому далее в этой теме я прошу исключить советы подобные Это в принципе всё что я хотел сказать по поводу твоих мне замечаний. И не стоит отвечать мне рассказывая о том как я не прав и как ты хорош. Потому что это называется офтоп. И если ты будешь офтопить в этой теме - у твоей мамы отклеятся уши. Поэтому хватит нести чушь и втирать разного рода дичь. Приятного времени суток. А теперь, может быть кто нибудь поможет мне в моей задаче? Повторюсь, необходимо узнать число X указанное в подключаемом к PHP файлу шаблоне
Но если есть иные, дельные предложения - буду рад выслушать.
0
|
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
|
|
15.09.2015, 03:42 | 7 |
![]() Решение
Совет подумать: "Нужен ли шаблонизатор".
Я их и написал. В частности: "Шаблонизатор не нужен если ты не знаешь за чем он нужен". Самый простой вариант - include, самый правильный - javascript. ...в данный момент. Чтобы понять что шаблонизатор одними регуляркми не кончится. "/(?:\{group=)([0-9]+)(?:\})(.*?)(?:\{\/group\})/m" = регулярка $1 = \\1 = нужная цифра $2 = \\2 = текст между тегами Не проверял.
1
|
-1 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 38
|
||||||||||||||||
15.09.2015, 12:31 [ТС] | 8 | |||||||||||||||
Да, это именно то что мне нужно. Через пару часов буду тестить. Спасибо.
Что ты имел ввиду? Ведь JS исполняется на стороне клиента. Насчёт include, я впринципе набросал функцию которая склеивает 2 одноимённых php файла из разных папок по запросу site.domen/name_page.html И да, действительно. Вполне себе можно использовать один файл для действий, а другой для разметки. Но мне неприятен вопрос чисто эстетический. Я конечно понимаю что многие здесь любят чистый php, но мне неприятно писать большие страницы вида
Это что касается CMS в целом. Вы не подумайте ребят, я не вчера с юкоза ушёл. p.s.Позавчера Но мне нравится в DLE то как там реализованы шаблоны. Достаточно простого
Но опять же повторюсь, мне не нужна своя логика в шаблоне. Я когда то видел как для dle написали модуль if else... Так вот, мне даже определение групп не нужно в реальном коде. Но реализовать это ради опыта я хочу. Своими силами. И вот ещё что. Гуру php, расскажите мне о том, как всё же лучше читать файл шаблона? Есть функция читающая его через буфер. А можно запихать его в переменную, но я читал о том, что переменная хранит значения в оперативке. Что буквально говорит мне Есть конечно ещё идея читать его как текстовый файл, но мне кажется это очень долго. А так же, мне интересно узнать что вы, люди, думаете о инклудах? Скажем склеил я 2 файла. В первом работает код, в втором преимущественно вывод. Что дальше? Как вывести красиво? Или только?
А, да, ну и плюсик этому Джентльмену. Кстати я не говорил что это ТЫ минусанул меня. Это сделал другой, плохой человек.
0
|
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
|
||||||
15.09.2015, 13:27 | 9 | |||||
А интерфейс кому показывается?
0
|
-1 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 38
|
|
15.09.2015, 14:27 [ТС] | 10 |
Ну это понятно как дважды два. Но суть в том, что если будет много подключений - сайт упадёт или как минимум будет тормозить из-за большого количества генирации страниц.
А вот о поподробнее. В том же DLE похожая реализация. $page->title($title) Это класс? А затем функция? Или всё это ты советуешь мне вставить в второй php файл? (в котором я планирую делать вывод) В общем объяснись. Мне кажется это интересно)
0
|
99 / 46 / 18
Регистрация: 09.08.2015
Сообщений: 367
|
||||||
16.09.2015, 05:51 | 11 | |||||
Ну тут простор для фантазии большой. У меня в классе Page все функции шаблонизатора, а в метод main инклудится примерно такой "шаблон":
0
|
16.09.2015, 05:51 | |
16.09.2015, 05:51 | |
Помогаю со студенческими работами здесь
11
Зависает проверка регулярного выражения Ошибка составления регулярного выражения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Запрет подсветки выделения текста с помощью CSS
hw_wired 12.02.2025
Выделение текста - одна из базовых возможностей взаимодействия пользователя с контентом на веб-странице. Однако в некоторых случаях стандартное поведение выделения может нарушать задуманный дизайн. . .
|
Выполнение другой программы из приложения Python
hw_wired 12.02.2025
При разработке современных приложений часто возникает потребность в запуске и взаимодействии с другими программами прямо из кода. Python предоставляет множество эффективных средств для выполнения. . .
|
Отличия между let и var в JavaScript
hw_wired 12.02.2025
Работа с переменными - один из основных моментов при написании программ на JavaScript. От правильного объявления и использования переменных зависит не только читаемость кода, но и его надежность, а. . .
|
Подключение файла JavaScript в других файлах JavaScript
hw_wired 12.02.2025
Самый современный и рекомендуемый способ подключения JavaScript-файлов - использование системы модулей ES6 с ключевыми словами 'import' и 'export'. Этот подход позволяет явно указывать зависимости. . .
|
Отмена изменений, не внесенных в индекс Git
hw_wired 12.02.2025
Управление изменениями в Git - одна из важнейших задач при разработке программного обеспечения. В процессе работы часто возникают ситуации, когда нужно отменить внесенные изменения, которые еще не. . .
|
Что такое px, dip, dp, and sp в Android
hw_wired 12.02.2025
При разработке мобильных приложений для Android одним из ключевых вызовов становится адаптация интерфейса под различные устройства. А ведь их действительно немало - от компактных смартфонов до. . .
|
Отличия POST и PUT в HTTP
hw_wired 12.02.2025
В основе современного интернета лежит протокол HTTP, который определяет правила взаимодействия между клиентами и серверами. Этот протокол предоставляет набор методов, позволяющих клиентам выполнять. . .
|
Перемещение последних коммитов в новую ветку Git
hw_wired 12.02.2025
В процессе разработки иногда возникает ситуация, когда последние изменения в основной ветке нужно переместить в отдельную ветку разработки. Может оказаться, что вы внесли несколько коммитов в ветку. . .
|
GraphQL в Go (Golang)
stackoverflow 11.02.2025
В веб-разработке традиционные REST API постепенно уступают место более гибким и эффективным решениям. GraphQL - мощное средство для создания гибких API, которое позволяет клиентам запрашивать именно. . .
|
GraphQL и TypeScript
stackoverflow 11.02.2025
В мире современной веб-разработки GraphQL прочно занял место одного из самых перспективных подходов к созданию API. Этот язык запросов, созданный для оптимизации взаимодействия между клиентом и. . .
|