PHP функция для парсинга шаблона.
Здравствуйте.
Нужно написать функцию.
Требования.
- PHP 7.
- Функция должна на основе строки (шаблона) вернуть структуру.
- На вход получает строку (шаблон).
- На выход возвращает многомерную структуру (массив ассоциативных массивов)
- Если в тексте есть фигурные скобки, то они обрабатываются специальным образом.
- {for array_name} - начало цикла for
- {for} - окончание цикла for
- {some_name} - имя переменной.
- Если в тексте встречаются следующие наборы символов (слева от ->), то в конечной структуре они должны быть преобразованы в соответствующие (справа от ->):
- \{ -> {
- \} -> }
- \\ -> \
- {{ -> {
- }} -> }
- \n -> перенос строки
- Учесть вложенность циклов друг в друга.
- Должна быть отдельная функция, которая обрабатывает {for array_name} ... {for} инструкцию и возвращает ассоциативный массив.
- Должна быть отдельная функция, которая обрабатывает {var} - инструкцию и возвращает ассоциативный массив.
Пример:
Из
Просто текст
Должно быть:
[
{
type: text
content: Просто текст
}
]
Переменные
Если в тексте встречается строка в фигурных скобках, то помечается переменной.
Из
Меня зовут {First_Name}.
Должно быть:
[
{
type: text
content: Просто текст
}
{
type: var
name: First_Name
}
{
type: text
content: Просто текст
}
]
Циклы
Если встречается структура вида {for Some_Name} ... {for}, то это рассматривается как цикл.
Из
<h1>Список пользователей</h1>
<ul>
{for users}
<li>{num}. {key}: {item.name}</li>
{for}
</ul>
Должно быть:
[
{
type: text
content: '<h1>Список пользователей</h1>
<ul>'
}
{
type: for
var: users
content: [
{
type: text
content: <li>
}
{
type: var
name: num
}
{
type: text
content: ". "
}
{
type: var
name: key
}
{
type: text
content: ": "
}
{
type: var
name: item.name
}
{
type: text
content: "</li>"
}
]
}
{
type: text
content: Просто текст
}
{
type: text
content: '<ul>'
}
]
-
Здравствуйте!
Опыт в парсинге более 4-х лет. Готов приступить сразу после принятия условий. Срок - день
-
902 23 0 дравствуйте, буду рад выполнить Ваш заказ.
Сделаю все быстро и качественно. Буду рад сотрудничеству!
Языки: PHP, HTML, CSS, JavaScript
PWA: Quasar, Vue, JavaScript
FrontEnd: Vue.JS , VueTify JS, Nuxt JS
BackEnd: PHP, Node.JS, Laravel 5.8, Yii2
СУБД: MySQL, ELOQUENT ORM
-
Здравствуйте. Данный функционал надо куда то встроить?
-
Актуальные фриланс-проекты в категории PHP
Интеграция блока "Где смотреть" (Laravel / Livewire)Необходимо реализовать интеграцию внешней стриминговой платформы для сайта о фильмах и сериалах на Laravel / Livewire. Что нужно сделать: Реализовать импорт внешнего каталога контента, который обновляется 1 раз в день. Выполнять матчинг контента по IMDb ID и/или TMDB ID. Если… PHP, Веб-программирование ∙ 5 часов 5 минут назад ∙ 20 ставок |
Доопрацювання существующего проекта на Laravel (PHP)Необходимо доработка существующего проекта на Laravel (PHP). Проект включает в себя готовую админ-панель, которая имеет внутри себя билдер, который выступает для создания страниц через него с версткой (html+css+js) на php кодом для вывода данных. В проекте нужно реализовать 2-3… CMS, PHP ∙ 8 часов 41 минута назад ∙ 30 ставок |
Новый магазин на Woocommerce
103 718 UAH
Ищу разработчика для создания интернет-магазина на Woocommerce. Проект - магазин ежедневных акций, популярные товары в ограниченном количестве. Что уже есть: вёрстка всех страниц (витрина, оформление заказа, контентные страницы, аккаунт покупателя), фирменный стиль, логотип,… PHP, Веб-программирование ∙ 11 часов 2 минуты назад ∙ 89 ставок |
Необходимо сделать доработку на сайте Modx Evolution CMS 3.1.7
1000 UAH
Разрабатывается доработка дизайна и верстка сайта, нужно будет внедрить эти работы на сайт. Также внедрить некоторые доработки на сайте. HTML и CSS верстка, PHP ∙ 15 часов 7 минут назад ∙ 22 ставки |
Внедрение технического SEO-аудита на OpenCartДобрый день. Необходимо внедрить технические SEO-правки на сайте softugo.com. Сайт уже разработан, но еще не запущен полноценно. Платформа: ocStore 3.0.2.0 / OpenCart + кастомный код. Хостинг: Hostinger. Текущая версия PHP: 7.3. (планируется переход на PHP 8.2) Есть готовый… PHP, Веб-программирование ∙ 1 день 12 часов назад ∙ 58 ставок |