[ 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: 3935
Témy: 51 | 51
Bydlisko: Bratislava
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: 4062
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

180

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

781

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

419

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

150

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

341

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

719

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

487

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

181

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

531

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

771

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

245

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

387

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

779

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

255

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

397

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

121

16.06.2015 2:27

p4tooo



© 2005 - 2018 PCforum, edited by JanoF