[ Príspevkov: 4 ] 
AutorSpráva
Offline

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

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
NapísalOffline : 17.06.2012 14:47 | Nahradenie tagov v retazci

Nazdarek. Mam script na nahradzovanie tagov v retazci:
Kód:
$dbTag=array('/\<p style\="(.*)";\>(.*)\<\/p\>/isU', '/\<span style\="(.*)"\>(.*)\<\/span\>/isU', '/\<div style\="(.*)"\>(.*)\<\/div\>/isU');
$htmlTag = array("$2", "$2", "$2");

$obsah="<div style=\"text-align: right\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius sagittis laoreet. Sed vehicula, nisl sit amet auctor vulputate, diam augue imperdiet ligula, eget tincidunt dui est in dui. </div>";

$obsah=preg_replace($dbTag, $htmlTag, $obsah);
echo "$obsah";

// Vysledok: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius sagittis laoreet. Sed vehicula, nisl sit amet auctor vulputate, diam augue imperdiet ligula, eget tincidunt dui est in dui. 

Toto funguje bez problemov. Problem nastava ak mam v premennej $obsah dvakrat ten isty tag. Cize nieco taketo:
$obsah="<div style="text-align: right">Lorem ipsum dolor sit amet, consectetur adipiscing elit. <div style="text-align: left">Mauris varius sagittis laoreet.</div>Sed vehicula, nisl sit amet auctor vulputate, diam augue imperdiet ligula, eget tincidunt dui est in dui. </div>";
A vysledok potom vyzera takto:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. <div style="text-align: left">Mauris varius sagittis laoreet.Sed vehicula, nisl sit amet auctor vulputate, diam augue imperdiet ligula, eget tincidunt dui est in dui. </div>";
Neviete mi poradit ako to cele upravit, aby mi mi to nahradilo vsetky tagy?? Resp. aby po pouziti f.-cie replace som nemal v texte ziadny tag??
Dakujem.


Offline

Správca fóra
Správca fóra
Nahradenie tagov v retazci

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 17.06.2012 14:56 | Nahradenie tagov v retazci

je nejaky dovod, preco si nepouzil strip_tags?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 17.06.2012 15:41 | Nahradenie tagov v retazci

:loony: ..aj som pozeral f.-ciu strip_tags, ale neviem preco som ju nepouzil..Tiez som to mohol najprv vyskusat..
Vdaka


Offline

Čestný člen
Čestný člen
Nahradenie tagov v retazci

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 17.06.2012 18:47 | Nahradenie tagov v retazci

stenley píše:
je nejaky dovod, preco si nepouzil strip_tags?
Ja by som vedel. Algoritmus pouzity v strip_tags je vyslovene primitivny a odstranuje aj platny text, ktory nie je HTML kodom a ziaden prehliadac ho za HTML kod povazovat nebude. Ak odstranovat tagy, tak jediny spravny sposob je splasit niekde HTML parser, obsah vyparsovat a potom ukladat len obsah elementov z vzniknuteho stromu dokumentu. Co je prilis pracne, preto sa to robi tak, ze sa znaky < a & prevadzaju na entity a cely obsah sa zobrazi presne tak, ako je napisany. Pre pripadne formatovanie mozes pouzit BBCode alebo markdown syntax. Bezpecne a jednoduche. Mas nieco proti tomuto sposobu?
Inak k tvojmu problemu, dufam, ze chapes, preco ti to nefunguje. Ak by som to mal riesit, tak by som skusil odstranit U modifikator a nad nahradou (tzn. obsahom odstranovaneho elementu) volat tu cistiacu fciu rekurzivne (modifikator e, hnusne, ale funkcne). Aj ked hm, to by sa ti tak, ako to mas napisane, zase posralo na kriziacich sa tagoch - tam je fix zrejmy, pocitat s pripadom, ze odstranujes len zaciatocny element - a robit toto ti inak malo napadnut aj skor, co by sa stalo, keby som tvoju fciu zavolal nad kodom <div onclick="alert('XSS')">tu nie je ziadny uzatvaraci tag.? ;)


 [ Príspevkov: 4 ] 


Nahradenie tagov v retazci



Podobné témy

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

Počet podreťazcov v reťazci

v PHP, ASP

1

173

28.04.2010 12:38

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

hladanie podretazca v retazci

v PHP, ASP

3

763

31.08.2008 22:35

Codik

V tomto fóre nie sú ďalšie neprečítané témy.

Vynechanie medzier v reťazci

v Assembler, C, C++, Pascal, Java

2

389

31.01.2012 13:48

street_punk

V tomto fóre nie sú ďalšie neprečítané témy.

Problem s URL v retazci

v PHP, ASP

7

135

03.12.2012 9:23

newboy1

V tomto fóre nie sú ďalšie neprečítané témy.

Hľadanie možných kombinácií v reťazci

v PHP, ASP

2

331

08.04.2011 15:36

jurov

V tomto fóre nie sú ďalšie neprečítané témy.

Pridanie Vlastnych tagov - phpBB3

v Redakčné systémy

7

681

18.06.2010 18:31

ansysko

V tomto fóre nie sú ďalšie neprečítané témy.

PSpad a dokoncovanie tagov

v Ostatné programy

3

459

13.07.2008 16:58

Svolo

V tomto fóre nie sú ďalšie neprečítané témy.

Soft na úpravu tagov

v Audio programy

1

168

15.12.2011 20:53

Denco1

V tomto fóre nie sú ďalšie neprečítané témy.

etomite uprava meta tagov

v Redakčné systémy

0

517

03.02.2007 18:01

andrej02

V tomto fóre nie sú ďalšie neprečítané témy.

Rýchle mazanie MP3 tagov

v Audio programy

1

757

26.08.2006 20:02

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

zobrazovanie znaku v retazci, jazyk C

v Assembler, C, C++, Pascal, Java

2

231

04.01.2012 20:49

svejk

V tomto fóre nie sú ďalšie neprečítané témy.

funkcia na zobrazenie html tagov

v PHP, ASP

6

373

25.01.2009 17:15

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Ako na zobrazenie html tagov?

v PHP, ASP

16

764

27.07.2008 21:48

dulius

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] Problem s mazanim textu v retazci

v PHP, ASP

1

238

16.03.2009 8:21

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Script na nahodenie br, b a inych tagov

v JavaScript, VBScript, Ajax

4

365

13.01.2009 12:27

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

nahradenie textu

v Assembler, C, C++, Pascal, Java

2

103

16.06.2015 2:27

p4tooo



© 2005 - 2017 PCforum, edited by JanoF