Autor | Zpráva | ||
---|---|---|---|
Sylar Profil |
Zdravím,
potřeboval bych rozdělit string obsahující html dle nadpisů a odstavců. Pokud budou tagy vnořené, vzal by se pouze rodič. V případě, že by text neobsahoval žádný odstavec ani nadpis, měl by se vrátit celý string, tak jak byl na vstupu. Hledal jsem jak by to šlo nejlépe a asi přes preg_split, ale nedaří se mi vymyslet ten samotný regex. Např. z tohoto vstupu: <p>text</p><div class="main"><span>a b c d e f g h i j</span><h3 class="nadpis-h3" style="font-weight: bold;">h3 header</h3><div><p>Text text text <b>bold text</b> text text <i>italic text</i> <p>p inside p</p> text text text.</p> Text outside paragraph</div></div> $output[0] = '<p>text</p>'; $output[1] = '<div class="main"><span>a b c d e f g h i j</span>'; $output[2] = '<h3 class="nadpis-h3" style="font-weight: bold;">h3 header</h3>'; $output[3] = '<div>'; $output[4] = '<p class="paragraph-p" style="font-size: 80%;">Text text text <b>bold text</b> text text <i>italic text</i> <p>p inside p</p> text text text.</p>'; $output[5] = ' Text outside paragraph</div></div>'; |
||
juriad Profil |
#2 · Zasláno: 26. 5. 2014, 15:12:54
Na toto nejsou regulární výrazy vhodné. Načti celý string jako HTML do DOMu a pak s ním pracuj.
http://www.php.net/manual/en/domdocument.loadhtml.php Bude ti stačit skoro jen projít seznam childNodes .
|
||
Sylar Profil |
#3 · Zasláno: 26. 5. 2014, 22:45:28
juriad:
OK, to vypadá, že bude fungovat. Děkuji za odpověď. |
||
Časová prodleva: 10 let
|
0