Autor Zpráva
xerno
Profil
Zdravím :)
Mám dlouhý řetězec obsahující texty, tagy, javascripty, styly css.
No a potřebuju mít nad těmi styly kontrolu, dostat každý obsah tagů <style> do proměnné.

Napadlo mě (zjednodušeně):

preg_replace('/<style>(.+)<\/style>/', '$1', obsah());


Dál bych to řešil pravděpodobně pomocí preg_replace_callback(), ale to teď není důležité, hlavní problém spočívá v onom .+ protože tečka (dot) mi nezachytí odřádkování, čili nemohu pokračovat dále.
Kdyby se někdo ptal na smysl, odpověď je jednoduchá: Potřebuji tyto css komprimovat (kvůli extrémním délkám) a filtrovat (kvůli novýmu template), bohužel to nelze řešit jinak.
Kcko
Profil
preg_replace('/<style>(.+)<\/style>/s', '$1', obsah());


A jeste bych doplnil modifikator i jako opatreni proti moznosti velikosti tagu.
Alphard
Profil
xerno:
protože tečka (dot) mi nezachytí odřádkování
Doplňte parametr s PCRE_DOTALL.

// Nalezení odkazu mě zdrželo skoro minutu :-(
Kcko
Profil
Alphard:
Mohl jsi napsat jen s, nic se nema prehanet :-)
xerno
Profil
Kcko:
Díky za rychlou reakci, vyřešilo se mnohé a můžu pokračovat, díky :)
Každopádně obsah stránky je normovaný a tagy jsou malé všechny.

Alphard:
Díky za odkaz, bude se hodit :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0