| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 11.03.08 Prihlásený: 31.07.11 Príspevky: 67 Témy: 38 | Napísal allan: 01.02.2011 19:48 | |
|
<span style="color: #FFFFFF;">Color: #FFFFFF;</span>
Uz asi 2 hodiny si lamem hlavu s tym ako co najjednoduchsie odstranit z lubovolneho XHTML kódu vložené štýly, presnejšie tieto 4:
font-size, font-family, color, line-height
Najskor som urobil toto:
eregi_replace("color[ ]*:[ ]*#[abcdef0123456789]{3,8}[;]{1}", "", $string);
Problem je ten, ze takto sa odstrani aj text, ktory v skutocnosti nie je styl.
Potrebujem to nejakom osetrit, aby sa to odstranilo len v pripade ze sa retazec nachadza medzi symbolmi: < a >; style=" a ".
Prosim ak mi viete niekto pomoct, vopred Vam velmi pekne dakujem.
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 01.02.2011 20:22 | |
|
pozri si na php.net strip_tags, mam dojem ze v komentaroch bol kod na funkciu ktora odstranovala pozadovane atributy z pozadovanych tagov
_________________ Sorry za prelkepy |
|
Registrovaný: 11.03.08 Prihlásený: 31.07.11 Príspevky: 67 Témy: 38 | Napísal autor témy allan: 01.02.2011 21:04 | |
|
Ano ale ja nechcem odstranit cely atribut, len konkretne styly: font-size, font-family, color a line-height
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 01.02.2011 21:48 | |
|
neviem ci sa to da cisto s regularnymi, ja sam ich nejako neovladam...
mozno troska krkolomne riesenie, ale budis, aspon sa mas coho chytit
Kód: $str = '<a href="color:red;" style="color:red;border:1px solid gray;line-height:18px;background:yellow;">asd</a> color:red; <b style="color:red;">asd</b>'; preg_match_all('#<a (.*?) style="(.*?)"#', $str, $styles); foreach($styles[2] as $style){ $style = 'style="'.$style.'"'; $rep = preg_replace('#(font-size|font-family|color|line-height):(.*?);#', '', $style); $str = str_replace($style, 'style="'.$rep.'"', $str); } echo $str;
_________________ Sorry za prelkepy |
|
Registrovaný: 11.03.08 Prihlásený: 31.07.11 Príspevky: 67 Témy: 38 | Napísal autor témy allan: 02.02.2011 16:31 | |
|
emer píše: neviem ci sa to da cisto s regularnymi, ja sam ich nejako neovladam... mozno troska krkolomne riesenie, ale budis, aspon sa mas coho chytit Kód: $str = '<a href="color:red;" style="color:red;border:1px solid gray;line-height:18px;background:yellow;">asd</a> color:red; <b style="color:red;">asd</b>'; preg_match_all('#<a (.*?) style="(.*?)"#', $str, $styles); foreach($styles[2] as $style){ $style = 'style="'.$style.'"'; $rep = preg_replace('#(font-size|font-family|color|line-height):(.*?);#', '', $style); $str = str_replace($style, 'style="'.$rep.'"', $str); } echo $str;
Toto je presne co som potreboval, hoc to nie je cez jednu funkciu, ale to nevadi.
Po niekolkych upravach mi to funguje presne tak ako som chcel.
Dakujem
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|