Autor | Zpráva | ||
---|---|---|---|
Chodec Profil |
#1 · Zasláno: 8. 12. 2008, 14:58:21 · Upravil/a: Chodec
Prosím Vás jak napsat příkaz, aby se řetězec
[div]text[div]text[div]text[/div][/div][/div] atd. převedl na <div>text<div>text<div>text</div></div></div> Tento pžíkaz $string = Preg_replace ("#\[div\](.*)\[/div\]#U", "<div>$1</div>", $string); akorát nahradí první text mezi první <div> a </div> a skončí. |
||
mikul Profil |
#2 · Zasláno: 8. 12. 2008, 15:12:47
Nebude ti stačit str_replace ?
|
||
Mastodont Profil |
#3 · Zasláno: 8. 12. 2008, 15:13:01
Na toto stačí str_replace.
|
||
Chodec Profil |
#4 · Zasláno: 8. 12. 2008, 15:17:02 · Upravil/a: Chodec
Bude to složitější:
[div=1]text[div=2]text[div=3]text[/div][/div][/div] atd. na <div class="1">text<div class="2">text<div class="3">text</div></div></div> Zkrátka jedná se o formátování citací pomocí bbCode... |
||
Nox Profil |
#5 · Zasláno: 8. 12. 2008, 15:29:29 · Upravil/a: Nox
Chodec
Holt musíš napsat co chceš už na začátku ;) $string = preg_replace("/\[div=(\d*)\](.*)\[\/div\]/",'<div class="$1">$2</div>',$string); |
||
Chodec Profil |
#6 · Zasláno: 8. 12. 2008, 20:59:17 · Upravil/a: Chodec
$string = preg_replace("/\[div=(\d*)\](.*)\[\/div\]/",'<div class="$1">$2</div>',$string); Nefunguje. Je to "hladové". Výsledek: <div class="1">Text1[div=2]Text2[div=3]Text3[/div][/div]</div> |
||
bohyn Profil |
#7 · Zasláno: 8. 12. 2008, 21:06:22
Chodec
$string = preg_replace("/\[div=(\d*)\](.*?)\[\/div\]/ims",'<div class="$1">$2</div>',$string); PS: je to regularni vyraz |
||
Chodec Profil |
#8 · Zasláno: 8. 12. 2008, 21:14:24
$string = preg_replace("/\[div=(\d*)\](.*?)\[\/div\]/ims",'<div class="$1">$2</div>',$string); Zase nefunguje. Výsledek: <div class="1">Text1[div=2]Text2[div=3]Text3</div>[/div][/div] „PS: je to regularni vyraz“ Njn, vždycky si nemohu vzpomenout. |
||
bohyn Profil |
#9 · Zasláno: 8. 12. 2008, 22:54:12
Zda se ze je treba pouzit cykl.
<?php $string = "[div=1]text[div=2]text[div=3]text[/div][/div][/div]"; do { $string = preg_replace("/\[div=(\d+)\](.*?)\[\/div\]/is", '<div class="$1">$2</div>', $string, -1, $count); } while($count); echo $string; ?> |
||
Majkl578 Profil |
#10 · Zasláno: 8. 12. 2008, 23:26:38
nebo
$string = preg_replace("/\[div=(\d*)\]]/ims",'<div class="$1">',$string); $string = preg_replace("/\[\/div\]/ims", '</div>', $string, -1, $count); pouzil jsem priklad bohyna |
||
bohyn Profil |
#11 · Zasláno: 9. 12. 2008, 16:27:48
Reseni od Majkl578 je rychlejsi nez moje (upravene reseni od Noxe), ale nezohlednuje parovani tagu. Vyber si co potrebujes.
Majkl578 4. a 5. parametr v druhem radku jsou v tvem pripade zbytecne a v prvnim radku mas navic jednu ] ;) |
||
Chodec Profil |
#12 · Zasláno: 10. 12. 2008, 10:58:53
Díky. Ono to nakonec bylo ještě složitější, než jsem si myslel, tak že jsem to musel dost upravit. Ale díky Vašemu nápadu to funguje.
|
||
Časová prodleva: 15 let
|
0