

Źródło:
(wiem, że start=1 można uznać za niefartowne, ale sprawa dotyczy braku uszu)
tresc tekst jeszcze jakieś śmieci
Czy jest możliwe takie skonstruowanie preg_match, by generował taki rezultat:
Kod
Array
Array
(
[0] => Array
(
[0] => <div>
[1] => div
)
[1] => Array
(
[0] => <a href="/moj_link" target="_blank">
[1] => a
[2] => href
[3] => /moj_link
[4] => target
[5] => _blank
)
[2] => Array
(
[0] => <ol start=1>
[1] => ol
[2] => start
[3] => 1
)
)
i tak dalej. (pomijam w ogóle kwestię treści pomiędzy tagami i tagami zamykającymi)Array
(
[0] => Array
(
[0] => <div>
[1] => div
)
[1] => Array
(
[0] => <a href="/moj_link" target="_blank">
[1] => a
[2] => href
[3] => /moj_link
[4] => target
[5] => _blank
)
[2] => Array
(
[0] => <ol start=1>
[1] => ol
[2] => start
[3] => 1
)
)
Wykorzystuję flagę PREG_SET_ORDER. Część takiego wyrażenia umiem skonstruować, ale nie wiem, czy jest możliwe takie skonstruowanie wyrażenia, by "samo się zapętlało". Coś w stylu:
#<([[:alpha:]]*)[i tutaj 'pętla']>#
a jeśli nie, czy jedynym sensownym rozwiązaniem jest najpierw sprawdzenie czy jakieś atrybuty istnieją, a jeśli tak, to dopiero je parsować kolejnym preg_match? To jedyna alternatywa, jaka przychodzi mi do głowy.