/** * @param string $url_to_read * @param string $username * @param string $password * @param int $timeout * @return string */ public static function load_file($url_to_read, $username = "", $password = "", $timeout = 30) { $i = 0; do { $ch = curl_init(); if ($username != "" || $password != "") { curl_setopt($ch, CURLOPT_USERPWD, "{$username}:{$password}"); } curl_setopt($ch, CURLOPT_URL, $url_to_read); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_USERAGENT, RISTools::STD_USER_AGENT); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); $text = curl_exec($ch); $text = str_replace(chr(13), "\n", $text); //$info = curl_getinfo($ch); curl_close($ch); $text = RISTools::toutf8($text); if (!defined("VERYFAST")) { sleep(1); } $i++; } while (strpos($text, "localhost:8118") !== false && $i < 10); return $text; }
public static function suche_strassen($str) { static::init_streets(); $antragtext = static::ris_street_cleanstring($str); $streets_found = []; foreach (static::$STREETS as $street) { $offset = -1; $last_offset = -1; while ($offset + 3 < mb_strlen($antragtext) && ($offset = mb_strpos($antragtext, $street->name_normalized, $offset + 1)) !== false) { if ($offset == $last_offset) { $offset += 10; continue; } $danach = mb_substr($antragtext, $offset + mb_strlen($street->name_normalized), 10); $nr = IntVal($danach); $ort = $nr > 0 && $nr < 1000 ? $street->name . " {$nr}" : $street->name; $falsepositive = false; if (mb_substr($antragtext, $offset - 11, 11) == "haltestelle") { $falsepositive = true; } if ($street->name_normalized == "richardstr" && mb_substr($danach, 0, 2) == "au") { $falsepositive = true; } if (!$falsepositive && !in_array($ort, $streets_found)) { $streets_found[] = RISTools::toutf8($ort); } for ($i = $offset; $i < $offset + mb_strlen($street->name_normalized); $i++) { $antragtext[$i] = "#"; } $last_offset = $offset; } } $streets_found_consolidated = []; foreach ($streets_found as $street) { $street_short = str_replace([" str", "-str"], ["str", "str"], mb_strtolower($street)); $laengeres_gefunden = false; foreach ($streets_found as $street_cmp) { $street_cmp_short = str_replace([" str", "-str"], ["str", "str"], mb_strtolower($street_cmp)); if (mb_strpos($street_cmp_short, $street_short) !== false && mb_strlen($street_short) < mb_strlen($street_cmp_short)) { $laengeres_gefunden = true; } } if ($laengeres_gefunden) { continue; } if (preg_match("/[0-9]/siu", $street)) { $streets_found_consolidated[] = $street; } else { $mit_hausnummer_gefunden = false; foreach ($streets_found as $street2) { if (mb_strpos($street2, $street . " ") === 0 && preg_match("/[0-9]/siu", $street2)) { $mit_hausnummer_gefunden = true; } } if (!$mit_hausnummer_gefunden) { $streets_found_consolidated[] = $street; } } } return $streets_found_consolidated; }