Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
EREG_REPLACE , PREG_REPLACE...

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok Napísal autor témyOffline : 01.02.2011 21:04

Ano ale ja nechcem odstranit cely atribut, len konkretne styly: font-size, font-family, color a line-height


Offline

Užívateľ
Užívateľ
EREG_REPLACE , PREG_REPLACE...

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok Napísal autor témyOffline : 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


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. ereg, ereg_replace

v PHP, ASP

3

998

16.09.2009 12:04

Triminka Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra