Autor | Zpráva | ||
---|---|---|---|
leonek Profil |
#1 · Zasláno: 26. 6. 2014, 00:11:54
Dobrý den
Potřeboval bych poradit. Mám tyto vstupní data: "1-9 ks: 250,- Kč;10-99 ks: 196,- Kč;100 a více ks: 160,- Kč;" Zpracovávám to touto funkcí: $vystup = preg_replace("/(\d+,- Kč);/", "<span class=kc>$1</span> ", $vstup); Problém je, že bych potřeboval přidat za druhou ze tří cen <br> (jakoby za druhý středník).
Nevíte někdo řešení prosím? |
||
janbarasek Profil |
#2 · Zasláno: 26. 6. 2014, 10:10:10
leonek:
Můžeš to rozparsovat po středníku a prostě to tam přidat ručně: <?php $q = '1-9 ks: 250,- Kč;10-99 ks: 196,- Kč;100 a více ks: 160,- Kč;'; $parser = explode(';', $q, 3); echo $parser[0].';'.$parser[1].';<br>'.$parser[2]; ?> |
||
Tori Profil |
Obojí dohromady pomocí preg_replace_callback, v callbacku počítat jednotlivé ceny.
Anebo ve dvou krocích - nejdřív doplnit zlomy řádku a pak druhým replacem obalovat do <span>u. $string = preg_replace('~([^;]+;){3}~', '$0<br>', $string); |
||
leonek Profil |
#4 · Zasláno: 26. 6. 2014, 11:35:52
Velice se omlouvám, neřekl jsem to celé. Data pochází z databáze a nejsou tam vždy tři ceny.
1-9 ks: 250,- Kč;10-99 ks: 196,- Kč;100 a více ks: 160,- Kč; 1-49 ks: 55,- Kč;50 a více ks: 53,- Kč; Zvýhodněná cena: 150,- Kč; |
||
Časová prodleva: 3 dny
|
|||
leonek Profil |
#5 · Zasláno: 29. 6. 2014, 23:20:11
Tori:
Děkuji, použil jsem druhé řešení i když jsem to musel trochu upravit: $string = preg_replace("~([^;]+;){2}~", "$0<br>", $string); $string = preg_replace("/(\d+,- Kč);/", "<span class=kc>$1</span> ", $string); |
||
Časová prodleva: 10 let
|
0