function explode_place($arg) { global $all_names; $arg = trim($arg, " ,"); $parts = explode(" ", $arg); $parts = array_map(trim, $parts); $allParts = array(); for ($i = 0; $i < count($parts); $i++) { if (!empty($parts[$i])) { $allParts[] = $parts[$i]; } } $parts = $allParts; unset($allParts); while (TRUE) { $c1 = count($parts); for ($i = 0; $i < $c1; $i++) { if ($c1 >= $i + 1) { if (is_name($parts[$i] . " " . $parts[$i + 1])) { // dieses Array-Element mit dem vorherigen zusammenführen $parts[$i] .= " " . $parts[$i + 1]; array_splice($parts, $i + 1, 1); break; } if (is_name($parts[$i] . "-" . $parts[$i + 1])) { // dieses Array-Element mit dem vorherigen zusammenführen $parts[$i] .= "-" . $parts[$i + 1]; array_splice($parts, $i + 1, 1); break; } } if ($c1 >= $i + 2) { if (is_name($parts[$i] . " " . $parts[$i + 1] . " " . $parts[$i + 2])) { // dieses Array-Element mit dem vorherigen zusammenführen $parts[$i] .= " " . $parts[$i + 1] . " " . $parts[$i + 2]; array_splice($parts, $i + 1, 2); break; } if (is_name($parts[$i] . "-" . $parts[$i + 1] . "-" . $parts[$i + 2])) { // dieses Array-Element mit dem vorherigen zusammenführen $parts[$i] .= "-" . $parts[$i + 1] . "-" . $parts[$i + 2]; array_splice($parts, $i + 1, 2); break; } } } if (count($parts) == $c1) { break; } } if (count($parts) == 2) { if (is_place($parts[0])) { return array($parts[0], $parts[1]); } elseif (is_place($parts[1])) { return array($parts[1], $parts[0]); } elseif (is_name($parts[0])) { return array($parts[1], $parts[0]); } elseif (is_name($parts[1])) { return array($parts[0], $parts[1]); } else { return array($parts[0], $parts[1]); } } elseif (count($parts) == 1) { if (is_place($parts[1])) { return array($parts[0], ""); } elseif (is_name($parts[0])) { return array("", $parts[0]); } else { return array("", $parts[0]); } } elseif (count($parts) > 2) { return array($parts[0], $parts[1]); } }
function out() { global $output_str, $not, $not2, $places, $names; $output_str = trim($output_str, " ,/"); $output_strs = array(); if (!empty($output_str) && !in_array($output_str, $not2) && strpos($output_str, "= ") === FALSE && strpos($output_str, "noch ") === FALSE) { if (!is_place($output_str)) { $is_place = FALSE; } else { $is_place = TRUE; } // am Anfang vieler Ortsnamen $output_str = trim($output_str, " -"); // nur den ersten Ortsnamen übernehmen $pos = strpos($output_str, "siehe"); if ($pos !== FALSE) { $length = strlen($output_str); $output_str = substr($output_str, 0, $pos - 1); } $output_str = str_replace("Str.", "Straße", $output_str); $output_str = str_replace("str.", "straße", $output_str); $output_str = strtolower($output_str); // den Namen so wie er ist speichern $output_strs[] = $output_str; // den Namen auch ohne geklammerte Dinge speichern $output_strs[] = eregi_replace(" \\(.*\\)", "", $output_str); // den Namen auch ohne Punkte speichern $output_strs[] = str_replace(".", "", $output_str); for ($i = 0; $i < count($output_strs); $i++) { if ($is_place) { $places[] = $output_strs[$i]; } else { $names[] = $output_strs[$i]; } } } $output_str = ""; }