Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:00 Der er 12 kommentarer og
1 løsning

strlen - mærkeligt

jeg har en string : $str = Indbet.ID=000000000037150

Den stammer fra en OCR linie på et girokort og jeg skal dekode medlemsnummeret.

medlemsnumeret er højrestillet og det sidste ciffer er et checkciffer.

Jeg bruger nu følgende til at finde medlemsnummeret: $betalendemedlemmer[]=substr (ltrim($tok,"Indbet.ID=0"),0,(strlen(ltrim($tok,"Indbet.ID=0"))-1));

men noget går galt for jeg får 37150 ud istedet for 3710 som jeg havde forventet.

Jeg kan spore mig frem til at et er i strlen(ltrim($tok,"Indbet.ID=0")) at det går galt.

den giver nemlig 6
ltrim($tok,"Indbet.ID=0") giver "37150" så det er mig en gåde, hvorfor strlen får den til 6 ???

anyone ??

Poulsgaard
Avatar billede busschou Praktikant
17. maj 2005 - 14:10 #1
hvad med
$betalendemedlemmer[]=substr (ltrim($tok,"Indbet.ID="),0,(strlen(ltrim($tok,"Indbet.ID="))-1));
Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:12 #2
ja?
hvad med den ?

Poulsgaard
Avatar billede ksoren Nybegynder
17. maj 2005 - 14:17 #3
du kan også bruge et regulært udtryk:

$nr = preg_replace('/^[0]*(\d*)\d$/', '$1', $str);
Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:18 #4
Mit spørgsmål er: "så det er mig en gåde, hvorfor strlen får den til 6 ???"
Avatar billede busschou Praktikant
17. maj 2005 - 14:22 #5
spørgsmål
er $str og $tok samme side af samme sag?
Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:24 #6
sorry min copy/paste har svigtet mig, ja det er det samme....
Avatar billede busschou Praktikant
17. maj 2005 - 14:28 #7
Jeg er lidt i tvivl om hvad du ønsker at få egentlig
"men noget går galt for jeg får 37150 ud istedet for 3710 som jeg havde forventet."
Du skriver det sidste ciffer er et tjek ciffer og at du ønsker medlemsnummeret
Vil det ikke sige at du ønsker at få 3715 ud ?
Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:30 #8
"men noget går galt for jeg får 37150 ud istedet for 3710 som jeg havde forventet."

Det sidste ciffer er et checkciffer der bruges i forbindelse med OCR linien på girokortet.

Det jeg ikke forstår er hvorfor strlen("37150") giver 6 når jeg bruger den som jeg gør.
Avatar billede busschou Praktikant
17. maj 2005 - 14:31 #9
nå nå ok.. det forstår jeg heller ikke ...sorry
Avatar billede ksoren Nybegynder
17. maj 2005 - 14:35 #10
Der er ikke sneget sig et mellemrum ind sidst i strengen?
Avatar billede poulsgaard Praktikant
17. maj 2005 - 14:43 #11
nej det mener jeg ikke jeg bruger en $tok = strtok($Totalstr," \n\t"); til at hente min $tok

Jeg bruger normalt copy/paste fra vores netbank:
----------------
09.05.2005
09.05.2005
040505 Indbet.ID=000000000037150

09.05.2005
09.05.2005
040505 Indbet.ID=000000000036186
25,00
-----------------------
Avatar billede ksoren Nybegynder
17. maj 2005 - 14:49 #12
linieskift består ofte af \r\n så prøv med

strtok($Totalstr," \r\n\t");
Avatar billede poulsgaard Praktikant
30. november 2006 - 13:33 #13
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester