Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день.
Версия Laravel: 7.14.1
Задача.
Необходимо текст HTML из поля формы сохранить в БД в виде json строки.
Пример html:
<h2>Это заголовок</h2>
<p>Это первый параграф</p>
<p> </p>
<p> </p>
<p> </p>
<blockquote>
<p>это цитата</p>
</blockquote>
<p>Это второй параграф</p>
<hr>
<p>Это третий параграф</p>
<p> </p>
<pre>
<code class="language-plaintext">
Какой-то ещё тег
</code>
</pre>
<p> </p>
Что должно получиться:
[
{
type:h2
value:Это заголовок
},
{
type:p
value:Это первый параграф
},
{
type:p
value:
},
{
type:p
value:
},
{
type:p
value:
},
{
type:blockquote
{
type:p
value:это цитата;
},
},
{
type:p
value:Это второй параграф;
},
{
type:hr
},
{
type:p
value:Это третий параграф
},
{
type:p
value:
},
{
type:pre
{
type:code
value:Какой-то ещё тега;
},
},
{
type:pre
{
type:code
value:Какой-то ещё тега;
},
},
{
type:p
value:
}
]
Структура html всегда разная. Структура json должна повторять структуру html.
Я вижу следующие этапы решения данной задачи:
1 HTML код преобразовать в PHP массив, где название тега - ключ, а содержимое - значение
2 Полученный массив преобразовать в json
Со 2-м пунктом проблем не должно возникнуть. Сейчас застопорился с 1-м пунктом.
Что было проделано:
Пересмотрел в гугле все возможный парсеры html, но все они заточены на поиске конкретного тега или атрибута. В данной задаче мне необходимо распарсить все теги и разместить их в том порядке, в котором они расположены в HTML.
Буду рад любым вариантам, неважно будь-то пакет laravel либо "ванильный" php.
Заранее спасибо.
Не в сети
Можно попробовать через DomCrawler брать html и в цикле проходясь по нодам сохранять в нужный формат
https://symfony.com/doc/current/compone … awler.html
Не в сети
Страницы 1