Autor Zpráva
Chodec
Profil
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>
atd. ?
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
Nebude ti stačit str_replace ?
Mastodont
Profil
Na toto stačí str_replace.
Chodec
Profil
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>
atd. ?

Zkrátka jedná se o formátování citací pomocí bbCode...
Nox
Profil
Chodec
Holt musíš napsat co chceš už na začátku ;)
$string = preg_replace("/\[div=(\d*)\](.*)\[\/div\]/",'<div class="$1">$2</div>',$string);
Chodec
Profil
$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
Chodec
$string = preg_replace("/\[div=(\d*)\](.*?)\[\/div\]/ims",'<div class="$1">$2</div>',$string);


PS: je to regularni vyraz
Chodec
Profil
$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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0