login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ereg werkt niet (Opgelost)

Offline dimb - 18/05/2009 16:40
Avatar van dimbNieuw lid Hallo,

Ik ben bezig een functie te maken die een ingevoerd bedrag omzet naar centen.
Output zou bv kunnen zijn:
12 -> 1200
11,5 -> 1150
8,52 -> 852

Ik heb nu de volgende functie gemaakt, hij is nog lang niet af maar ik heb een probleem waar ik niet uit kom.
Wat ik ook als input geef de eerste ereg check geeft altijd een True, ook als ik ene , gebruik of geen van beide:
  1. $prijs = "11.2";
  2.  
  3. if(ereg('.',$prijs)){ //Deze geeft altijd true:S
  4. $prijs_explode = explode(".", $prijs);
  5. if(strlen($prijs_explode['1']) == 1){
  6. $prijs = $prijs_explode['0'].$prijs_explode['1'].'0';
  7. }elseif(strlen($prijs_explode['1']) == 2){
  8. $prijs = $prijs_explode['0'].$prijs_explode['1'];
  9. }else{
  10. $prijs = $prijs_explode['0'].substr($prijs_explode['1'],0,2);
  11. }
  12. }elseif(ereg(',',$prijs)){
  13. $prijs_explode = explode(",", $prijs);
  14. if(strlen($prijs_explode['1']) == 1){
  15. $prijs = $prijs_explode['0'].$prijs_explode['1'].'0';
  16. }elseif(strlen($prijs_explode['1']) == 2){
  17. $prijs = $prijs_explode['0'].$prijs_explode['1'];
  18. }else{
  19. $prijs = $prijs_explode['0'].substr($prijs_explode['1'],0,2);
  20. }
  21. }else{
  22. $prijs = $prijs.'00';
  23. }
  24.  
  25. echo $prijs;


Nu heb ik ook al Eregi geprobeerd maar dit hielp, zoals verwacht, ook niet.

Paul du Long
Dimby

3 antwoorden

Gesponsorde links
Offline henver - 18/05/2009 16:41 (laatste wijziging 18/05/2009 16:44)
Avatar van henver HTML gevorderde Waarom zo moeilijk maken?

PHP.net: is_int (eerst met PHP.net: str_replace , vervangen door .)
+ gewoon vermenigvuldigen met 100, voor zover ik het weet. Dan moet je niet gaan checken of er een . in voorkomt!
Offline ArieMedia - 18/05/2009 16:43 (laatste wijziging 18/05/2009 16:46)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Als je de waardes numeriek houd kan je gewoon 8.52 * 100 doen, en dan geeft dit de gewenste output.

Edit: En het tellen van hoeveel waardes er in je array is gekomen door je explode is ook overbodig, hier is namelijk de functie PHP.net: substr_count voor.
Offline dimb - 18/05/2009 17:01
Avatar van dimb Nieuw lid OMFG hoe kon ik zo dom zijn -.-'
Gewoon:

  1. $prijs = "11,2";
  2.  
  3. $prijs = $prijs*100;
  4.  
  5. echo $prijs;


kan dus dicht
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s