import_lijst_van_nederlandse_plaatsen
13 november 2010
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8" />
</head>
<h1>Import</h1>
<?PHP
$mysql_server = isset($_POST['mysql_server']) ? $_POST['mysql_server'] : "localhost";
$mysql_username = isset($_POST['mysql_username']) ? $_POST['mysql_username'] : "root";
$mysql_password = isset($_POST['mysql_password']) ? $_POST['mysql_password'] : NULL;
$mysql_database = isset($_POST['mysql_database']) ? $_POST['mysql_database'] : NULL;
$mysql_table = isset($_POST['mysql_table']) ? $_POST['mysql_table'] : "cities";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://nl.wikipedia.org/wiki/Lijst_van_Nederlandse_plaatsen");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$html = curl_exec($ch);
curl_close($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
$plaatsen = array();
for ( $i = 0; $i < $hrefs->length; $i++ )
{
$href = $hrefs->item($i);
if ( substr($href->getAttribute('href'), 0, 6) == "/wiki/" )
$plaatsen[$i] = $href->nodeValue;
}
reset($plaatsen);
$index_start = key($plaatsen);
end($plaatsen);
$index_eind = key($plaatsen);
if ( isset($_POST['import']) )
{
mysql_connect($mysql_server, $mysql_username, $mysql_password) or die(mysql_error());
mysql_select_db($mysql_database) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
echo '<ul>';
foreach ( $plaatsen as $key => $value )
{
if ( $key >= $_POST['index_start'] && $key <= $_POST['index_eind'])
{
if ( $_POST['double_placenames'] == "on" )
$plaats = preg_replace('/\(.*\)/', '', $value);
else
$plaats = $value;
$sql = sprintf("SELECT * FROM %s WHERE description = '%s'", mysql_real_escape_string($mysql_table), mysql_real_escape_string($plaats));
$result = mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result) == 0 )
{
$sql = sprintf("INSERT INTO %s (description) VALUES ('%s')", mysql_real_escape_string($mysql_table), mysql_real_escape_string($plaats));
mysql_query($sql) or die(mysql_error());
echo '<li style="color: green">'.$plaats.'</li>';
}
else
echo '<li style="color: red">'.$plaats.'</li>';
}
}
echo '</ul>';
mysql_close();
}
?>
<form method="post" action="import_lijst_van_nederlandse_plaatsen.php">
<fieldset>
<legend>MySQL</legend>
<p>
<label for="mysql_server">Server</label>
<input type="text" name="$_POST['mysql_server']" id="mysql_server" value="<?PHP echo $mysql_server; ?>" />
</p>
<p>
<label for="mysql_username">Username</label>
<input type="text" name="mysql_username" id="mysql_username" value="<?PHP echo $mysql_username; ?>" />
<p>
</p>
<p>
<label for="mysql_password">Password</label>
<input type="password" name="mysql_password" id="mysql_password" value="<?PHP echo $mysql_password; ?>" />
</p>
<p>
<label for="mysql_database">Database</label>
<input type="text" name="mysql_database" id="mysql_database" value="<?PHP echo $mysql_database; ?>" />
</p>
<p>
<label for="mysql_table">Tabel</label>
<input type="text" name="mysql_table" id="mysql_table" value="<?PHP echo $mysql_table; ?>" />
</p>
</fieldset>
<br />
<fieldset>
<legend>Index</legend>
<p>
<label for="index_start">Start</label>
<input type="text" name="index_start" id="index_start" value="<?PHP echo $index_start; ?>" />
</p>
<p>
<label for="index_eind">Eind</label>
<input type="text" name="index_eind" id="index_eind" value="<?PHP echo $index_eind; ?>" />
</p>
</fieldset>
<br />
<fieldset>
<legend>Opties</legend>
<p>
<label for="double_placenames">Dubbele plaatsnamen weigeren</label>
<input type="checkbox" name="double_placenames" id="double_placenames" checked />
</p>
</fieldset>
<p><input type="submit" name="import" value="Import" /></p>
</form>
<h1>Lijst van Nederlandse plaatsen</h1>
<ul>
<?PHP
foreach ( $plaatsen as $key => $value )
echo '<li>' . $key . ' ' . $value . '</li>';
?>
</ul>
</html>