Ahoj,
mam taký problém..
potreboval by som z textu, ktorý beriem z databázy automaticky premeniť sumu v sk na euro.
Napr: text je "cena: 120sk" a po prejdení skriptom by to vyhodilo: "cena : 3€ (120sk)" a naopak,
medzi sumou v real a menou by mohla/nemusela byť medzera.
Išlo by to nejako? Dík
Fórum › PHP
Eur => skk
<?php
$vstup = "cena: 120sk";
if (eregi("^cena: ([0-9]+)sk$", $vstup, $vysledok)) {
$vystup = "cena: ".round($vysledok[1] / 30.126, 2)."€ (".$vysledok[1]."sk)";
}
echo $vystup; // cena: 3.98€ (120sk)
?>
ale newiem ako myslis zobrazit opacne... aky by tam bol potom vstup??
a este sa chcem opytat preco je tak zadana cena v databaze... preco nie napr. v int... double...atd...????
To marioff :
1) naopak myslim ze v databaze bude iba 30eur a ono to napise 30eur (120sk)
2) v databaze je cely članok a v tom niekde je občas spomenutá suma
3) nie vzdy to zacina "cena" moze tam byt nieco ine alebo nic skusim to nejak prerobit
dik pomohol si mi aspon trochu
$text = "Cena:\n";
$eurToSkk = '';
$zaokrh = round($vzorec,3);
$vzorec = $_GET['skk']/30,126;
echo "$text $eurToSkk";
$textZdb = "Tento notebook stoji v Bungistane 554€ a Turistane iba 489€, a u nas na Slovensku dokonca len 12199sk.";
if (preg_match_all("/([0-9]+)(sk|€){1}/", $textZdb, $vysledok)) {
$najdene = count($vysledok[0]);
for($i=0;$i<=$najdene;$i++) {
if ($vysledok[2][$i]=="sk") { $textZdb = str_replace($vysledok[0][$i], round($vysledok[1][$i] / 30.126, 2)."€ (".$vysledok[0][$i].")", $textZdb); }
if ($vysledok[2][$i]=="€") { $textZdb = str_replace($vysledok[0][$i], $vysledok[0][$i]." (".round($vysledok[1][$i] * 30.126, 2)."sk)", $textZdb); }
}
}
echo $textZdb;
VSTUP: Tento notebook stoji v Bungistane 554€ a Turistane iba 489€, a u nas na Slovensku dokonca len 12199sk.
VYSLEDOK: Tento notebook stoji v Bungistane 554€ (16689.8sk) a Turistane iba 489€ (14731.61sk), a u nas na Slovensku dokonca len 404.93€ (12199sk).
Hadam je to, co potrebujes......... ak nie uplne (lebo ani ja som ta nepochopil na 100 perc.) tak staci zmenit parametre str_replace... to uz nebude problem :)
trochu mi to blbne
http://www.stiavnik.sk/_subdomeny/lesspol/cennikhttp://www.stiavnik.sk/_subdomeny/lesspol/cennik
a co kontretne??
kukal som tu stranku... jedine co by to mohlo przdit je ta medzera po sume a pred €... dalej je to uz v texte dobre... definuj pls presne problem :)
To dalaman : snazil som sa hlavne aby to malo malo riadkov :)
zabudol som na desatinne miesta... ak tak mozes este zmenit podmienku....
if (preg_match_all("/([0-9]+[\,]?[0-9]{0,2})(sk|€){1}/", $textZdb, $vysledok))
edit: no som rad ze ti to ide ;)
ani newiem... postupne som sa naucil podstatu jednotlivych "specialnych" znakov... a potom to ide same...
regularne vyrazy (aspon podla mna) vyriesia 99 perc. vsetkych problemov s textami ale aj napr. s kontrolou vstupnych dat atd.., jednoducho ich vyuzitie je takmer bez obmedzeni... odporucam nastudovat... ;)
ja osobne nejak navody neee... skor si najdem funkcny priklad a ten si postupne menim a kukam ze co to urobi.. (pokus-omyl)..
ale na nete sa da toho najst dost aj s prikladmi... nakolko ich vyuzijes asi v skoro kazdom prog jazyku.... teraz ma napada ze mozem napisat ja nejaky user-friendly navod :) tu na programujte....
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Rozdelenie vysledku na Eura a centy — založil evam88
European Knight Online — založil Stafik
Moderátoři diskuze