Hoi allemaal,

Ik wil graag de gegevens van de KvK strippen. Dit doe ik door een pagina te pakken, te plakken in een tekstveld en dan exploden op diverse dingen... Nou ben ik redelijk opweg maar zit vast op een stuk... Ik hou dit over:

Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317 Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363 Maison van den Boer \"Het Circustheater\" 2586CW \'S-GRAVENHAGE 16033506 Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888 Fiddler 2513AM \'S-GRAVENHAGE 20092888 Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196 Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085 Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114 Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476 De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147

Het resultaat dat ik uiteindelijk wil is:

Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317
Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363
Maison van den Boer \"Het Circustheater\" 2586CW \'S-GRAVENHAGE 16033506
Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888
Fiddler 2513AM \'S-GRAVENHAGE 20092888
Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196
Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085
Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114
Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476
De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147


Wie heeft DE oplossing?

Groet Donny

[size=xsmall]Toevoeging op 22/09/2013 19:02:16:[/size]

De laatste cijfers zijn het KvK nummer. Deze zijn ALTIJD 8 cijfers lang...
Donny Wie weet op 22/09/2013 18:59:35

Ik wil graag de gegevens van de KvK strippen.

Je geeft niet aan waarvoor je het wilt gebruiken.
Op http://www.kvk.nl/disclaimer/ staat onder het kopje Informatie gebruiken

[quote]Het is niet toegestaan informatie op deze website over te kopiëren, te downloaden of op enigerlei wijze openbaar te maken, te verspreiden of te verveelvoudigen zonder voorafgaande schriftelijke toestemming van de Kamers van Koophandel en de houder van deze website of de rechtmatige toestemming van de rechthebbende. [quote]
Houd er dus rekening mee dat er een copyright rust op de gegevens!
Oke, maar wat dan nog? Of ik het nou handmatig doe of ik schrijf er een PHP scriptje voor waarin ik gegevens plak en die het stript... Gegevens zijn openbaar en mogen wel gebruikt worden. Ligt aan de doeleinden. Heb Contact met hun gehad en hun gaven zelf de link op zodat ik gegevens kon bekijken en gebruiken. Eigen doeleinde is wel toegestaan
Naast copyright heb je nog zoiets als databankenrecht.

Maar goed, als de KvK je expliciet een gebruiksrecht verleent, zou ik dat zeker benutten... en vooral ook de e-mail met de toestemming goed bewaren!
Maar alsnog: hoe kan ik dit het beste strippen? Ik wil ook graag dingen leren hiervan.
Even logisch ontleden: alles tot en met een integer van 8 cijfers zijn de gegevens van een bedrijf. Daarna beginnen de gegevens van een volgend bedrijf.
Donny Wie weet op 22/09/2013 18:59:35

[size=xsmall]Toevoeging op 22/09/2013 19:02:16:[/size]

De laatste cijfers zijn het KvK nummer. Deze zijn ALTIJD 8 cijfers lang...


Dit gaf ik inderdaad aan. Echter weet ik niet hoe ik daarop moet ontleden...
Ik ben zeker geen ster in regexen.
Het kan dan ook zijn dat dit niet correct is.
Maar het gevraagde komt er wel uit.
<?php
$var = "Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317 Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363 Maison van den Boer \"Het Circustheater\" 2586CW \'S-GRAVENHAGE 16033506 Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888 Fiddler 2513AM \'S-GRAVENHAGE 20092888 Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196 Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085 Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114 Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476 De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147 ";

preg_match_all("~[\D]+[0-9]+[\D]+([0-9]{8})\s*~", $var, $out, PREG_PATTERN_ORDER);
echo '<pre>'.print_r($out,true).'</pre>';
?>
Uitvoer:

Array
(
    [0] => Array
        (
            [0] => Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317 
            [1] => Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363 
            [2] => Maison van den Boer "Het Circustheater" 2586CW \'S-GRAVENHAGE 16033506 
            [3] => Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888 
            [4] => Fiddler 2513AM \'S-GRAVENHAGE 20092888 
            [5] => Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196 
            [6] => Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085 
            [7] => Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114 
            [8] => Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476 
            [9] => De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147 
        )

    [1] => Array
        (
            [0] => 06061317
            [1] => 16026363
            [2] => 16033506
            [3] => 20092888
            [4] => 20092888
            [5] => 24270196
            [6] => 24293085
            [7] => 24315114
            [8] => 24358476
            [9] => 24372147
        )

)
@Ramon: heb al gekeken, maar werkt niet makkelijker. Bedankt voor je tip!

Ik heb de volgende code en werkt bijna perfect. Enigste probleem waar ik tegenaan loop is dat ik de letters van de postcode niet erbij krijg.

Hier is mijn code:

<html>
<head>
	<title>KvK Gegevens plukken</title>
</head>
<body>
	<form action="kvk.php" method="post">
<input type="text" name="data">
<input type="submit" value="Strippen" name="add"></form>




<?php 
if (isset($_POST['add'])){
	$kvkNummers = array();
	$overigeGegevens = array();
	$postcodes = array();
	$explode1 = explode('gevonden', $_POST['data']);
	$explode2 = explode('pagina', $explode1[1]);
	//Karakters tellen
	$countstring = substr($explode2[0],2);
	//Counters en lege variabelen aanmaken
	$intCounter = 0;
	$kvkNummer = '';
	$overige = '';
	$nummer = '';
	$postcodeCounter = 0;
	$postcode = '';
	//Tellen van het eerste karakter tot het laatste karakter
	for($i=1; $i <= strlen($countstring); $i++){
	//Huidige karakter bepalen
	$curChar = substr($countstring, $i, 1);
		//Als de integer teller niet gelijk is aan 8, dan is het geen KVK nummer
		if($intCounter == 8){
			//Intcounter is 8, dus prop de gegevens in een array en reset alle waarde en begin opnieuw
			array_push($kvkNummers, $nummer);
			array_push($overigeGegevens, $overige);
			array_push($postcodes, $postcode);
			$intCounter = 0;
			$overige = '';
			$nummer = '';
			$postcode = '';
			$postcodeCounter = 0;
		} else {
			//Controleren of $curChar een getal is of ander teken
			if(is_numeric($curChar)){
				if(strlen($postcode) <= 3){
					//Als de $postcode 3 of minder karakters bevat, voeg dan de CurChar nog 1x toe.
					$postcode .= $curChar;
					$postcodeCounter++;
					//$intCounter++;
				} else {
					//Postcode cijfers zijn gevuld, alleen nog de KVK aanmaken
					$nummer .= $curChar;
					$intCounter++;
				}
				
			} else {
				//Het is geen getal, dus toevoegen aan de string $overige
				$overige .= $curChar;
			}
		}
	}
}
echo '<hr /><h1>KvK Nummers</h1>';
print_r($kvkNummers);
echo '<hr /><h1>Postcodes</h1>';
print_r($postcodes);
echo '<hr /><h1>Overige</h1>';
print_r($overigeGegevens);
echo '<hr />';

?>



</body>
</html>


Code bewerkt met uitleg regels
<?php
$var = "Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317 Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363 Maison van den Boer \"Het Circustheater\" 2586CW \'S-GRAVENHAGE 16033506 Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888 Fiddler 2513AM \'S-GRAVENHAGE 20092888 Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196 Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085 Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114 Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476 De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147 ";

preg_match_all("~[\D]+([0-9]{4}[\D]{2})+[\D]+([0-9]{8})\s*~", $var, $out, PREG_PATTERN_ORDER);
echo '<pre>'.print_r($out,true).'</pre>';
?>

Array
(
    [0] => Array
        (
            [0] => Barendrecht Exploitatie B.V. 2586CT \'S-GRAVENHAGE 06061317 
            [1] => Café \'t Oude Gemaal 2533CG \'S-GRAVENHAGE 16026363 
            [2] => Maison van den Boer "Het Circustheater" 2586CW \'S-GRAVENHAGE 16033506 
            [3] => Havana Den Haag 2513AG \'S-GRAVENHAGE 20092888 
            [4] => Fiddler 2513AM \'S-GRAVENHAGE 20092888 
            [5] => Sanhaji B.V. 2512BS \'S-GRAVENHAGE 24270196 
            [6] => Crazy Piano\'s Scheveningen B.V. 2586JK \'S-GRAVENHAGE 24293085 
            [7] => Soya&Flamenco B.V. 2583CM \'S-GRAVENHAGE 24315114 
            [8] => Horeca Exploitatie WWZ IV B.V. 2511AA \'S-GRAVENHAGE 24358476 
            [9] => De Hooiberg B.V. 2521CJ \'S-GRAVENHAGE 24372147 
        )

    [1] => Array
        (
            [0] => 2586CT
            [1] => 2533CG
            [2] => 2586CW
            [3] => 2513AG
            [4] => 2513AM
            [5] => 2512BS
            [6] => 2586JK
            [7] => 2583CM
            [8] => 2511AA
            [9] => 2521CJ
        )

    [2] => Array
        (
            [0] => 06061317
            [1] => 16026363
            [2] => 16033506
            [3] => 20092888
            [4] => 20092888
            [5] => 24270196
            [6] => 24293085
            [7] => 24315114
            [8] => 24358476
            [9] => 24372147
        )

)

Reageren