Adressen uitlezen (PHP)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ronald hendriks

ronald hendriks

13/03/2013 00:16:23
Quote Anchor link
Hallo,

Ik heb in Word een adressenlijst van meer dan 600 items die ik allemaal moet sorteren op straatnaam.
Het is ongebonnen werk om dit allemaal handmatig uit te zoeken en te sorteren.

Heeft iemand een idee hoe ik dit op een simpele manier kan doen?

De adresen staan allemaal door elkaar heen en gestorteerd op de naam. Dit moet dus gesorteerd worden op een straatnaam.

Misschien kan ik dit wel in een database zetten, dat lijkt me wel het handigst. Maar dan zit ik nog met het probleem dat ik meer dan 600 items in de database moet zetten (kolommen naam, adres, postcode, woonplaats). Alle woonplaatsen zijn overigens hetzelfde, dus dit hoeft niet per se.

Wie heeft een makkelijke en simpele oplossing voor mijn probleem? Ik zie het echt niet zitten om dit handmatig te moeten doen als ik er waarschijnlijk wel een PHP-scriptje voor kan schrijven.

Alvast bedankt!

Toevoeging op 13/03/2013 00:22:33:

Edit: Met dat PHP-scriptje bedoel ik bijvoorbeeld dat na elke lege regel (zit standaard tusen elke adres) een nieuw item wordt gezien.. Bijvoorbeeld:

Naam
Adres Huisnummer
Postcode
Woonplaats
[enter]
Naam
Adres Huisnummer
Postcode
Woonplaats
[enter]
...


Dat dat wordt gezien als:

1Naam
1Adres Huisnummer
1Postcode
1Woonplaats
[enter]
2Naam
2Adres Huisnummer
2Postcode
2Woonplaats
[enter]


Het maakt niet uit als adres + huisnummer in dezelfde kolom komen te staan. Hier wil ik het werk wel van hebben om dit uit te zoeken.
 
PHP hulp

PHP hulp

26/11/2024 07:44:47
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2013 00:22:48
Quote Anchor link
staan de adressen in een tabel in Word?

dan kun je die tabel wel exporteren naar een csv bestand ofwel Comma Separated Values via excel.

daarna kan een php progje ze wel inlezen.
 
Ronald hendriks

ronald hendriks

13/03/2013 00:24:47
Quote Anchor link
Bedankt voor je reactie en voor het meedenken.
Momenteel staat het niet in een tabel, maar ik geloof dat ik alles zo kan kopiëren en dat in een tabel kan plakken.
Ik ga het gelijk even proberen, bedankt Frank!
 
Willem vp

Willem vp

13/03/2013 00:25:06
Quote Anchor link
Is het niet simpel in Word op te lossen door de lijst te selecteren en dan te converteren naar een tabel? Ik vrees namelijk dat als er geen structuur in de lijst zit, dat het dan ook een vervelende klus wordt om dat met een PHP-script in een database te zetten.

Als er wel structuur in de lijst zit, zou je eenvoudig met Word of Excel iets kunnen frutselen. In het ergste geval moet je even de adrescomponenten netjes onder elkaar uitlijnen, zodat je de lijst op basis van een aantal karakters per kolom kunt converteren naar een tabel. Of je zet er delimiters tussen; bij adressen zou een tab of een puntkomma een redelijk veilige keuze moeten zijn.
 
Ronald hendriks

ronald hendriks

13/03/2013 00:29:15
Quote Anchor link
Ik kan het niet plakken in een tabel.. Dan komt het er ongetwijfeld verkeerd in te staan.

Alles staat momenteel zo onder elkaar:

Naam1
Straat1 huisnummer1
Postcode1 woonplaats1

Naam2
Straat2 huisnummer2
Postcode2 woonplaats2

Naam3
Straat3 huisnummer3
Postcode3 woonplaats3

...

Naam630
Straat630 huisnummer630
Postcode630 woonplaats630


In mijn ogen is dit echt onbegonnen werk!

Toevoeging op 13/03/2013 00:33:46:

Edit:

Wanneer ik alle lege regels tussen alle adressen weghaal, kan ik het converteren naar een tabel.

Zodra het in een tabel staat, is het toch niet zo moeilijk om het te converteren naar Excel en dit bestand uit te lezen in php?
 
- SanThe -

- SanThe -

13/03/2013 00:35:18
Quote Anchor link
Kan je hier wat mee?
Array
(
[0] => Naam1

[1] => Straat1 huisnummer1

[2] => Postcode1 woonplaats1

[3] =>

[4] => Naam2

[5] => Straat2 huisnummer2

[6] => Postcode2 woonplaats2

[7] =>

[8] => Naam3

[9] => Straat3 huisnummer3

[10] => Postcode3 woonplaats3
)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2013 00:36:34
Quote Anchor link
je kunt ook wel met php regel voor regel inlezen waarbij

regel1 = naam
regel2 = straat + huisnr
regel3 = postcode + woonplaats

en na een lege regel ga je weer vanaf 1 tellen
Gewijzigd op 13/03/2013 00:36:59 door Frank Nietbelangrijk
 
Ronald hendriks

ronald hendriks

13/03/2013 00:38:29
Quote Anchor link
Bedankt voor het meedenken. Ik zat zelf inderdaad ook aan zoiets te denken..

Maar het gaat om 684 adressen haha maar dat valt toch wel op te lossen met een while loop en $i++ ?

Toevoeging op 13/03/2013 00:39:39:

Frank Nietbelangrijk op 13/03/2013 00:36:34:
je kunt ook wel met php regel voor regel inlezen waarbij

regel1 = naam
regel2 = straat + huisnr
regel3 = postcode + woonplaats

en na een lege regel ga je weer vanaf 1 tellen



Dat zou inderdaad ook een uitkomt kunnen zijn.. En dan al die gegevens opslaan in een database bedoel je?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/03/2013 00:41:45
Quote Anchor link
absoluut.

je schrijft gewoon een klein php bestandje dat jouw bestand inleest en je gaat daar een nieuw bestand aanmaken en dan bekijk je het resultaat

kijk eens naar http://php.net/manual/en/function.file.php

Toevoeging op 13/03/2013 00:43:42:

Ronald hendriks op 13/03/2013 00:38:29:
Dat zou inderdaad ook een uitkomt kunnen zijn.. En dan al die gegevens opslaan in een database bedoel je?


ligt er aan wat je er later mee wilt doen
 
Ronald hendriks

ronald hendriks

13/03/2013 00:46:10
Quote Anchor link
Ik moet alles sorteren op straatnaam ivm het verspreiden van brieven e.d.
Het is allemaal binnen de woonplaats van de klant, dus dit moet uiteindelijk uitgeprint worden.

Toevoeging op 13/03/2013 00:50:45:

Edit:

Alle witregels zijn nu uit het Word-document gehaald (^p^p vervangen door ^p) en ik kan het nu allemaal converteren naar een tabel.

Ik denk dat ik nu al een grote stap verder ben
 
- SanThe -

- SanThe -

13/03/2013 00:59:00
Quote Anchor link
Kopiëer alles in kladblok en sla het op als adressen.txt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$array
    = file('adressen.txt');
$new = array(array(),array(),array(),array(),array());
$teller = 0;
$subteller = 0;
foreach($array as $line)
{

    if(trim($line) == '')
    {

        $subteller = 0;
        $teller++;
        continue;
    }

    $explode = explode(' ',$line);
    foreach($explode as $sub)
    {

        $new[$teller][$subteller] = trim($sub);
        $subteller++;
    }
}

echo '<pre>'.print_r($new, true).'</pre>';
?>


Geeft:
Array
(
[0] => Array
(
[0] => Naam1
[1] => Straat1
[2] => huisnummer1
[3] => Postcode1
[4] => woonplaats1
)

[1] => Array
(
[0] => Naam2
[1] => Straat2
[2] => huisnummer2
[3] => Postcode2
[4] => woonplaats2
)

[2] => Array
(
[0] => Naam3
[1] => Straat3
[2] => huisnummer3
[3] => Postcode3
[4] => woonplaats3
)
)
 
Ronald hendriks

ronald hendriks

13/03/2013 01:12:28
Quote Anchor link
Hartstikke bedankt voor je reactie en eventuele oplossing.
Met behulp van de vorige posts heb ik het echter zelf al gevonden.

Voor eventuele volgende lezers:

Allereerst moet je zorgen dat je alles onder elkaar hebt staan in Word. Wanneer je witregels tussen de adressen hebt staan, kun je deze met ctrl+h vervangen. Je moet ^p^p vervangen door ^p zodat de dubbele regels (waarvan 1 dus leeg is) wordt vervangen door een enkele regel en alles netjes onder elkaar komt te staan.

Vervolgens kun je alles selecteren en dit in Word converteren naar een tabel.

Wanneer je alles netjes naast en onder elkaar in een tabel hebt staan, kun je alles selecteren en dit plakken in excel.

Vervolgens sla je dit excel bestand op als .xls

Wanneer je alles goed hebt staan in Excel, kun je dit converteren naar MySQL op de volgende website: http://www.xls2mysql.com/


Reuze bedankt voor het meedenken iedereen! Zonder jullie hulp was ik dagen bezig geweest om alles handmatig uit te zoeken.
 
- SanThe -

- SanThe -

13/03/2013 01:15:13
Quote Anchor link
Het was weer leerzaam om even een scriptje te maken.
Mijn scriptje kan je zo gebruiken om alles in de database te gooien.

Maar goed dat het is opgelost.

Succes verder.
 
Ronald hendriks

ronald hendriks

13/03/2013 01:17:41
Quote Anchor link
Ik heb je script opgeslagen op mijn computer zodat ik dit eventueel kan gebruiken voor soortgelijke projecten.
Misschien dat jouw manier inderdaad nog wel makkelijker is dan het hele stappenplan wat ik net heb gedaan.

Nogmaals bedankt voor het meedenken en weltrusten iedereen :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.