Optellen van 'vervuilde' variable

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Plaats reactie
Dennis
Berichten: 431
Lid geworden op: 17 apr 2004, 12:16

Optellen van 'vervuilde' variable

Bericht door Dennis » 20 nov 2005, 16:41

Ik wil wat waardes optellen.
$a = '2'
$b = '3'
Het optellen van $a + $b is niet zo'n probleem.
Maar als nu is
$a = 'Hallo 2 dit is een test'
$b = ' En dan hier 3 zomaar wat txt'

Hoe kan ik dat dan doen? Zodat ik waarde 5 krijg
thnx

Gebruikersavatar
FlorisD
Berichten: 1595
Lid geworden op: 12 nov 2002, 21:06
Locatie: Vijfhuizen
Contacteer:

Bericht door FlorisD » 20 nov 2005, 18:44

Dat kan eenvoudig door met een kleine regex alle non-digit karakters eruit te filteren en daarna op te tellen:

Code: Selecteer alles

$result = preg_replace('/\\D+/', '', $subject);
of

Code: Selecteer alles

$result = ereg_replace('\\D+', '', $subject);
(volgens mij was preg meestal sneller)
MessageBoard.nl, gratis phpBB forum hosting

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 20 nov 2005, 19:45

Gewoon intval eroverheen halen :)
(Dus

Code: Selecteer alles

$a = intval($a);
:))

Dennis
Berichten: 431
Lid geworden op: 17 apr 2004, 12:16

Bericht door Dennis » 20 nov 2005, 20:13

FlorisD schreef:Dat kan eenvoudig door met een kleine regex alle non-digit karakters eruit te filteren en daarna op te tellen:

Code: Selecteer alles

$result = preg_replace('/\\D+/', '', $subject);
of

Code: Selecteer alles

$result = ereg_replace('\\D+', '', $subject);
(volgens mij was preg meestal sneller)
Thanks!

Code: Selecteer alles

$a = "This is some text and numbers 12345 and symbols !£$%^&";
$result = preg_replace('/\\D+/', '', $a);
echo  $result;
Dit werkt

Had zelf dit al geprobeerd wat ook werkt.

Code: Selecteer alles

$a = "This is some text and numbers 12345 and symbols !£$%^&";
$new_string = ereg_replace("[^0-9]", "", $a);
echo $new_string; 
Dat van paulus kreeg ik niet werkend :(

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 20 nov 2005, 20:56

paulus schreef:Gewoon intval eroverheen halen :)
(Dus

Code: Selecteer alles

$a = intval($a);
:))
Nee, intval bekijkt altijd het eerste karakter, en zal dus 0 geven.

Plaats reactie