Autor | Zpráva | ||
---|---|---|---|
K. Profil * |
#1 · Zasláno: 3. 9. 2006, 15:16:54
Zdravím.
Rád bych ve svém značkovaní odstranil prazdné tagy a nevím jak na to. Tedy potřebuji převést např. toto: [a]nejaky text[c][b][/b][/c][/a] na: [a]nejaky text[/a] Zkoušel jsem na to vymyslet reg.výraz, ale byl jsem neúspěšný. Nemohl by mi prosím někdo poradit, jak na to? Dík moc. |
||
nightfish Profil |
#2 · Zasláno: 3. 9. 2006, 15:22:16
$text = str_replace("[b][/b]", "", $text);
a tohle provádět cyklicky do té doby, pokud tam nějaké prázdné tagy budou |
||
K. Profil * |
#3 · Zasláno: 3. 9. 2006, 15:30:31
To mě taky napadlo. Problém je ale v tom, že to mohou být tagy s libovolnými názvy. A s tímto řešením by to bylo IMO celkem na dlouho.
|
||
Casero Profil |
#4 · Zasláno: 3. 9. 2006, 15:36:46
K.
no tak místo jmena tagu dáš libovolný znak..a máš to ne? |
||
K. Profil * |
#5 · Zasláno: 3. 9. 2006, 15:42:03
Casero
V tom případě se mi smaže i: [a][/b], protože ty názvy nebudou na sebe vázány. |
||
nightfish Profil |
#6 · Zasláno: 3. 9. 2006, 15:47:02
K.
tak v tom případě nějaký parser, který bude procházet text, pamatovat si 1) otevřené tagy a 2) pozice otevřených tagů a když narazí na uzavírací tag, tak zkontroluje rozdíl pozic oproti poslednímu otevřenému tagu stejného názvu a když bude dostatečně malý (teoreticky 0, prakticky délka otevíracího tagu), tak ty 2 odpovídající tagy zruší ...a cyklicky to bude opakovat |
||
K. Profil * |
#7 · Zasláno: 3. 9. 2006, 15:49:48
Právě tohoto jsem se bál. Myslel jsem, že existuje nějaký elegantnější způsob. Holt bohužel si s tím budu muset trochu víc pohrát.
Děkuji za rady. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0