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
Поправити CLSПотрібно поправити Cumulative Layout Shift через код PageSpeed не бачить цієї проблемиале через гугл хром видно що є зсув макету для комп версії сторінки відповіднов гугл сеарч зявилася помилка стосовно швидкості комп версії Потрібно підняти на іншому хостингу актуальну… PHP, Веб-програмування ∙ 1 день 4 години тому ∙ 26 ставок |
Перенести повністю готову адаптивну HTML5-структуру в WordPress.
12 000 UAH
Я шукаю досвідченого WordPress-розробника, який зможе перетворити наш ретельно підготовлений статичний HTML5/CSS3 код у високопродуктивну кастомну WordPress-тему. Фронтенд уже практично готовий (приблизно 99%): семантична розмітка, метадані та мультимовна структура (hreflang)… CMS, PHP ∙ 1 день 7 годин тому ∙ 61 ставка |
Інтеграція GoPosПривіт, робив хтось інтеграцію GoPos з кастомним сайтом для ресторану в Польщі? Потрібна допомога, у них дуже скудна документація, є тільки swagger і той без описів https://app.gopos.io/doc/swagger-ui/index.html Суть така, використовували від них сайт для онлайн замовлень, якщо… PHP, Веб-програмування ∙ 1 день 23 години тому ∙ 25 ставок |
Прописати мета дані АЛЬТ за допомогою ІІСайт на Laravel, на сайті багато зображень, для яких потрібно прописати коректні за семантикою та релевантні для сторінки АЛЬТ описання зображення в автоматичному режимі, з можливістю перевірки AI та машинне навчання, PHP ∙ 2 дні 20 годин тому ∙ 34 ставки |
Потрібен розробник для завершення та інтеграції проєкту з автоматичного збору й обробки данних
700 UAH
Основна частина парсера вже реалізована. Парсер працює на Windows-середовищі через Microsoft Edge: сайт має антибот-захист, тому збір даних виконується не прямими HTTP-запитами, а через живу браузерну сесію. Скрипти керують відкритою вкладкою Edge через Chrome DevTools Protocol,… PHP, Веб-програмування ∙ 3 дні 2 години тому ∙ 25 ставок |