webForumDet fria alternativet

Import från ett system till ett annat, dela upp data

PHP

5 svar · 414 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej,

Jag ska importera x antal medlemmar från ett system till ett annat och har dykt på ett problem.

I det "gamla" systemet finns medlemmars postnummer och ort i samma fält, formaterat såhär:

123 45 Staden

I det nya har jag valt att separera på båda dessa, så att postnummer ligger i ett fält med 5 siffror i följd utan mellanslag och sen ligger ort i ett eget.

När jag importerar det här måste jag alltså:

  • Dela de 6 första tecknen (postnumret) från staden.
  • Ta bort mellanslaget mellan 123 och 45
  • Vissa poster innehåller dessutom medlemmar utomlands, där adressen kan se helt annorlunda ut.

Hur löser jag de första två punkterna?
Angående den sista tror jag inte det är så många, så om scriptet jag ska bygga kunde "skrika till" när strängen inte har 5 siffror i början kunde jag hantera dom manuellt.

Tacksam för alla tips!

Medlem sedan juli 200012 978 inlägg
#2

Egentligen finns det inte mycket som slår Excel.
Där kan du vrida och vända slå ihop och slå isär. Göra Proper osv allt eftersom.

Medlem sedan feb. 20034 441 inlägg
#3

En väg kanske kan vara att köra en explode på strängen vid varje [space], så bör jag få en array med tre delar, där jag kan "slå ihop" 1 och 2.

Sen för att kolla "punkt 3" så kan jag validera myArr[0] och sen om den är numerisk.
Är den det samt 5 tecken lång, är det en svenska adress, annars utländsk.

Vad tror ni om en sån lösning?

Vill slippa att blanda in Excel, eftersom teckenkodning mm. lätt kan strula där.

Medlem sedan apr. 2008137 inlägg
#4
preg_match("/^([0-9]{3}) ([0-9]{2}) (.*)$/", $text, $m)

Får du ingen match är det en utländsk adress. Får du match är det bara att slå ihop $m[1] och $m[2] för postnummer, och stad ligger i $m[3].

Medlem sedan feb. 20034 441 inlägg
#5

Gisses vad bra, tack ska du ha!

Medlem sedan apr. 2008137 inlägg
#6

Varsågod, regexp är fint ibland... Eller som en fd kollega sa en gång:
"Some people, when faced with a problem, think: hey, i'll use regular expressions. Now they have two problems."

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)