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
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
hvad med $betalendemedlemmer[]=substr (ltrim($tok,"Indbet.ID="),0,(strlen(ltrim($tok,"Indbet.ID="))-1));
ja? hvad med den ? Poulsgaard
du kan også bruge et regulært udtryk: $nr = preg_replace('/^[0]*(\d*)\d$/', '$1', $str);
Mit spørgsmål er: "så det er mig en gåde, hvorfor strlen får den til 6 ???"
spørgsmål er $str og $tok samme side af samme sag?
sorry min copy/paste har svigtet mig, ja det er det samme....
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 ?
"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.
nå nå ok.. det forstår jeg heller ikke ...sorry
Der er ikke sneget sig et mellemrum ind sidst i strengen?
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 -----------------------
linieskift består ofte af \r\n så prøv med strtok($Totalstr," \r\n\t");
30. november 2006 - 13:33
#13
.
Vi tilbyder markedets bedste kurser inden for webudvikling