Hallo zusammen,
nach einiger Zeit habe ich den nachfolgenden script mal wieder ausgeführt. Mit diesem möchte ich feststellen, ob ein Straßenname existiert. Nun fiel mir auf, dass Straßennamen oder Orte mit Umlaut nicht gefunden werden. Wird ein Straßenname sowie ein Ort ohne Umlaut angegeben, funktioniert es. Es spielt auch keine Rolle, ob ich die Umlaute konvertiere (Köln->Koeln). Komischerweise funktionierte es früher einwandfrei.
Beispiel:
“Nelkenstr.,Wiesbaden” wird gefunden
“Altmünsterstr.,Wiesbaden” wird NICHT gefunden
“Altmuensterstr.,Wiesbaden” wird NICHT gefunden
Habt Ihr eine Idee? Ich bin wirklich ratlos! Ich glaube, dass es bei meinen zahlreichen Versuchen in den letzten Tagen auch zwei gefundene Treffer bei Straßennamen mit Umlaut gegeben hat.
Könnte das evtl. mit den PHP Einstellungen auf meinem Server zu tun haben? Dort steht:
default_charset: ISO-8859-15
<?php
function umlaute($text)
{
$search = array ('ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß');
$replace = array ('ae', 'oe', 'ue', 'Ae', 'Oe', 'Ue', 'ss');
$str2 = str_replace($search, $replace, $text);
return $str2;
}
$agent=$_SERVER['HTTP_USER_AGENT'];
$opts = array('http'=>array('header'=>"User-Agent: ".$agent."\r\n"));
$context = stream_context_create($opts);
$strasse="Nelkenstr.";
//$strasse="Altmünsterstr.";
$ort="Wiesbaden";
$strasse2=umlaute($strasse);
$ort2=umlaute($ort);
$adr5=$strasse.",".$ort;
$adr9 = file_get_contents('https://nominatim.openstreetmap.org/search?format=json&accept-language=de&q='.rawurlencode($adr5), false, $context);
$adr10 = json_decode($adr9);
echo "<pre>";
print_r ($adr10);
?>